A question! 遇到个问题,现在在做一个东东。需要把客户端的一个数据结构传递到服务端去,这个该如何做呢?带我的老师只是告诉我说可以用http协议、TCP协议等,但是具体如何做呢?我以前没有接触过,特来请教,最好能有这方面的资料或例子。谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看 socket 编程的例子吧,把结构体数据作为字节流发送就是了 ...一个简单的例子【Ref】:服务器:#include "stdafx.h"#include<stdio.h>#include<Winsock2.h>#include<string.h>#pragma comment(lib, "WS2_32.LIB")void main(){ char buffrecv[100]; memset(buffrecv,0,100); SOCKET serversocket; SOCKET newsocket; struct sockaddr_in serveraddr; struct sockaddr_in clientaddr; WSADATA wsaData; WSAStartup(MAKEWORD(2,2),&wsaData); serversocket=socket(AF_INET,SOCK_STREAM,0); serveraddr.sin_family=AF_INET; serveraddr.sin_port=htons(5555); serveraddr.sin_addr.s_addr=htonl(INADDR_ANY); bind(serversocket,(sockaddr *)&serveraddr,sizeof(struct sockaddr_in)); listen(serversocket,5); int size=sizeof(struct sockaddr_in); newsocket=accept(serversocket,(sockaddr *) &clientaddr,&size); recv(newsocket,buffrecv,100,0); printf("receive:\n"); printf("%s",buffrecv);}客户端:#include "stdafx.h"#include<stdio.h>#include<Winsock2.h>#include<string.h>#pragma comment(lib, "WS2_32.LIB")void main(){ /* char buffsend[100]; char *p=buffsend; for(;((*p)=getchar())!='\n';) { p++; } p=buffsend; */ char buffsend[100]="有只小鸟掉下水"; SOCKET clientsocket; SOCKADDR_IN serveraddr; WSADATA wsaData; WSAStartup(MAKEWORD(2,2),&wsaData); clientsocket=socket(AF_INET,SOCK_STREAM,0); Sleep(2000); if(clientsocket==INVALID_SOCKET) { printf("create clientsocket failed\n"); exit(0); } serveraddr.sin_family = AF_INET; serveraddr.sin_port = htons(5555); serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1"); int result=connect(clientsocket,(SOCKADDR *)&serveraddr,sizeof(serveraddr)); Sleep(2000); if(result==-1) { printf("connect server failed\n"); exit(0); } result=send(clientsocket,buffsend,100,0); if(result==-1) { printf("send message failed\n"); } Sleep(2000);} MSXML查询语句怎么查询不包含指定节点名称的列表? 选择器 如何关闭模态对话框 access中备注类型,在VC数据库编程中怎么处理?? 十万火急 关于水晶报表的问题! 如何更改多文档工程中,CChildFrame的标题。原标题为MY1,MY2...... 拍砖!!!!!!!!!200分 $$$$$$$$$$求解,基础问题,请问如何做到??¥¥¥¥¥¥¥ vc中如何使用ADO压缩和修复Access数据库文件??? 高深的问题!!!!!联众游戏使用的本机端口值是多少? CSDN怎么说也是个技术论坛!怎么来连自己论坛的全文搜索都做不好! 如何让几何Pen在划线时能够改变颜色,有代码
把结构体数据作为字节流发送就是了 ...
一个简单的例子【Ref】:
服务器:#include "stdafx.h"
#include<stdio.h>
#include<Winsock2.h>
#include<string.h>
#pragma comment(lib, "WS2_32.LIB")
void main()
{
char buffrecv[100];
memset(buffrecv,0,100);
SOCKET serversocket;
SOCKET newsocket;
struct sockaddr_in serveraddr;
struct sockaddr_in clientaddr;
WSADATA wsaData; WSAStartup(MAKEWORD(2,2),&wsaData);
serversocket=socket(AF_INET,SOCK_STREAM,0); serveraddr.sin_family=AF_INET;
serveraddr.sin_port=htons(5555);
serveraddr.sin_addr.s_addr=htonl(INADDR_ANY); bind(serversocket,(sockaddr *)&serveraddr,sizeof(struct sockaddr_in));
listen(serversocket,5); int size=sizeof(struct sockaddr_in);
newsocket=accept(serversocket,(sockaddr *) &clientaddr,&size);
recv(newsocket,buffrecv,100,0); printf("receive:\n");
printf("%s",buffrecv);
}客户端:#include "stdafx.h"
#include<stdio.h>
#include<Winsock2.h>
#include<string.h>
#pragma comment(lib, "WS2_32.LIB")
void main()
{
/*
char buffsend[100];
char *p=buffsend;
for(;((*p)=getchar())!='\n';)
{
p++;
}
p=buffsend;
*/
char buffsend[100]="有只小鸟掉下水";
SOCKET clientsocket;
SOCKADDR_IN serveraddr;
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
clientsocket=socket(AF_INET,SOCK_STREAM,0);
Sleep(2000);
if(clientsocket==INVALID_SOCKET)
{
printf("create clientsocket failed\n");
exit(0);
}
serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(5555);
serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1");
int result=connect(clientsocket,(SOCKADDR *)&serveraddr,sizeof(serveraddr));
Sleep(2000);
if(result==-1)
{
printf("connect server failed\n");
exit(0);
}
result=send(clientsocket,buffsend,100,0);
if(result==-1)
{
printf("send message failed\n");
}
Sleep(2000);
}