- 论坛徽章:
- 0
|
我通过NetTerm连到UNIX服务器上,现在想实现udp模式的客户/服务端程序,在本机上模拟。可是不能正常运行,我仔细看过程序,没有发现错误,请高手们帮我看看,不胜感激。
/* 服务端程序大抵如下,省略了一些定义和出错判断 */
sock=socket(AF_INET,SOCK_DGRAM,0);
svr_addr.sin_family=AF_INET; /* struct sockaddr svr_addr */
svr_addr.sin_port=htons(MYPORT); /* 宏定义,MYPORT=5050 */
svr_addr.sin_addr.s_addr=INADDR_ANY;
svrlen=sizeof(svr_addr);
bind(sock,(struct sockaddr *)&svr_addr,svrlen);
clilen=sizeof(struct sockaddr);
sendlen=sendto(sock,"cat",3,0,(struct sockaddr *)&cli_addr,clilen);
if (senlen==-1)
printf("sendto error\n" ;
else printf("send---\n" ;
close(sock);
/* 客户端程序大抵如下 */
sock=socket(AF_INET,SOCK_DGRAM,0);
svr_addr.sin_family=AF_INET; /* struct sockaddr svr_addr */
svr_addr.sin_port=htons(MYPORT); /* 宏定义,MYPORT=5050 */
svr_addr.sin_addr.s_addr=inet_addr(SVR_ADDR);
/* 宏定义,SVR_ADDR="127.0.0.1"*/
svrlen=sizeof(svr_addr);
cli_addr.sin_family=AF_INET;
cli_addr.sin_port=htons(MYPORT);
cli_addr.sin_addr.s_addr=inet_addr("127.0.0.1" ;
printf("----begin-----" ; /*为了调试*/
recvfrom(sock,buf,MAXBUF,0,(struct sockaddr *)&svr_addr,&svrlen);
printf("----ok--------" ;
我的本意是试图让服务端发送字符,客户端接收,可是运行时,服务端显示
send---,表示发送成功,但是客户端仅显示---begin----,表示接收出问题了,只是,问题处在哪里呢? |
|