读书人

sock已连接接收数据有有关问题各位

发布时间: 2012-04-15 18:39:21 作者: rapoo

sock已连接,接收数据有问题,各位帮帮忙
我是想实现收发信息,但是现在就一个字符a由客户端发送,服务器接收到的信息不是a(没显示),sock是连上的。请大家帮帮我。
服务器端程序:
int main( )
{
unsigned short int port;//端口号
int sock_serv,sock_client;
struct sockaddr_in name_server,name_client;
char m_szIP[20];
char buf[256],buffer;
int i,j,n;
typedef unsigned short int U16;
U16 l_string[100];

sock_serv=socket(AF_INET,SOCK_STREAM,0);
if(sock_serv<0)
printf("sock_serv error\n");
else
printf("sock_serv OK\n");

bzero(&name_server,sizeof(name_server));
name_server.sin_family=AF_INET;
name_server.sin_port=htons(7070);
name_server.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(sock_serv,(struct sockaddr *) &name_server,sizeof(name_server))<0)
printf("bind error\n");

listen(sock_serv,LISTENQ);
for(;;)
{
printf("server waiting\n");

socklen_t length = sizeof(name_client);

sock_client = accept(sock_serv,(struct sockaddr*)&name_client,&length);

char msgbuf[150];

recv(sock_client,msgbuf,150,0);//接收打印
printf("REV= %c \n",msgbuf[0]);
}
printf("sock end!\n");
close(sock_serv);
}

客户端程序

int main(void)//CreateClientSocket
{
int sock_serv,sock_client;
struct sockaddr_in name_server,name_client;
char m_szIP[20];
struct hostent *hp;
char *host;

host="192.168.0.2";
if((hp=gethostbyname(host))==NULL)
printf("Unknown host: %s\n",host);

sock_client=socket(AF_INET,SOCK_STREAM,0);
if(sock_client<0)
printf("socket error");

bzero(&name_server,sizeof(name_server));
name_server.sin_family = AF_INET;
name_server.sin_port = htons(7070);
name_server.sin_addr.s_addr = htonl(INADDR_ANY);

bzero(&sock_client,sizeof(sock_client));
sock_client.sin_family = AF_INET;
sock_client.sin_addr.s_addr=((struct in_addr *)(hp->h_addr))->s_addr;
sock_client.sin_port = htons(7071);

if(bind(sock_client,(struct sockaddr *) &name_server,sizeof(name_server))<0)
printf("bind error\n");
if(connect(sock_client,(struct name *) &name_server,sizeof(name_server))<0)
printf("connect error");
else
printf("connect!\n");
char msgbuf[150];
msgbuf[0]='a';
send(sock_serv,msgbuf,150,0);//发送'a'
printf("Send= %c\n",msgbuf[0]);
close(sock_client);
}

[解决办法]
你这个代码对吗 我晃眼看了下
int sock_serv,sock_client;

bzero(&sock_client,sizeof(sock_client));
sock_client.sin_family = AF_INET;
sock_client.sin_addr.s_addr=((struct in_addr *)(hp->h_addr))->s_addr;
sock_client.sin_port = htons(7071);
这是从你代码中的照抄

写混淆了吧

读书人网 >UNIXLINUX

热点推荐