问题描述
- 简单的C/S通信,但是结果不等于预期
-
server端代码:
#include
#include
#include
#include
#include
#include
#includeint main()
{int fd,sd;
struct sockaddr_in mysock;
fd=socket(AF_INET,SOCK_STREAM,0);memset(&mysock,0,sizeof(mysock)); mysock.sin_family=AF_INET; mysock.sin_port=htonl(1025); mysock.sin_addr.s_addr=htonl(INADDR_ANY); bind(fd,(struct sockaddr*)&mysock,sizeof(mysock)); listen(fd,13); while(1) { puts("circle"); char buf[1024]; int n; sd=accept(fd,(struct sockaddr*)NULL,NULL); n=recv(sd,buf,sizeof(buf),0); //write(1,buf,n); buf[n]=''; printf("%sn",buf); close(sd); } close(fd); return 0;
}
client端代码:
#include
#include
#include
#include
#include
#include
#includeint main(int argc,char **argv)
{int cd;
char buf[]="hello c tongxin!";
struct sockaddr_in clisock;cd=socket(AF_INET,SOCK_STREAM,0); memset(&clisock,0,sizeof(clisock)); clisock.sin_family=AF_INET; clisock.sin_port=htonl(1025);
// clisock.sin_addr.s_addr=argv[1];
inet_pton(AF_INET,argv[1],&clisock.sin_addr);connect(cd,(struct sockaddr *)&clisock,sizeof(clisock)); send(cd,buf,strlen(buf),0); close(cd); return 0;
}
客户端连接发送一个字符串,但是服务端没反应,代码哪里有问题?
解决方案
客户端连接上到服务端的对应ip 端口了没。先看连接建立了没
解决方案二:
你应该判断socket建立的成功与否,在你的client端,connect绑定的第二个参数,应该是server的地址,看你写的怎么像是client端
解决方案三:
大侠,地址是从命令行输入的
时间: 2024-09-09 23:34:54