C语言用Socket连接FTP服务端发送帐号的问题

#include<winsock2.h>#include<stdio.h>#pragmacomment(lib,"ws2_32")voidmain... #include <winsock2.h>#include <stdio.h>#pragma comment (lib,"ws2_32")void main(){SOCKET socket1;WSADATA wsaData;if(WSAStartup(MAKEWORD(2,2),&wsaData)){   printf("Winsock无法初始化!\n");   WSACleanup();   return ;}struct sockaddr_in server;server.sin_family=AF_INET;server.sin_port=htons(21);server.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");socket1=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);int serverlen=sizeof(server);connect(socket1, (SOCKADDR*)&server, sizeof(SOCKADDR));char buffer[512]={0};char recvbuffer[512]={0};recv(socket1,recvbuffer,sizeof(recvbuffer),0);printf(recvbuffer);strcpy(buffer,"user abc \r\n");send(socket1,buffer,sizeof(buffer),0);memset(recvbuffer,'\0',512);recv(socket1,recvbuffer,sizeof(recvbuffer),0);//就是这儿接收不到消息程序一直停在这儿不往下执行了,这有可能是什么原因呢?我用的是Serv-U10.3版本的服务器,就建在本机上的printf(buffer);closesocket(socket1);WSACleanup();} 展开
 我来答
立花里子来米兰
2011-10-01 · 超过36用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:98.9万
展开全部
敢不敢排个版
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ucnq56508374
2011-10-01 · 贡献了超过145个回答
知道答主
回答量:145
采纳率:0%
帮助的人:74.5万
展开全部
其实这一切就看你代码是怎么写的,如果你写成客户端在一直等待服务器端的数据,那当然,服务器端如果没有发送任何消息,那么客户端就会卡在这段代码上,一直等待服务器端等信息,直到服务器关闭或者发送来信息,得到的值也不会是-1,除非服务器端发送的数据就是-1。相反,你的代码写成在客户端与服务器端在相连接后,服务器端一直等待客户端的信息,客户端如果不发送信息的话,服务器端就会卡在这行代码上,不往下运行直到客户端关闭或者客户端发送来命令。这种情况会导致服务器或者客户端处于一直等待的情况,两边接收的值不一样,发送边发送的是Int型的,接收边接收的是Long型的,两边数据类型不匹配,这边短另一边长,会导致接收端一直接收所以,你如果想写一个socket程序,建议你用多线程,网上有书,你可以参考参考 到官方网站看看。挺好的呀,2011/10/1 17:40:11
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式