win32 socket问题? 本帖最后由 VisualEleven 于 2011-05-21 22:17:13 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 char recvBuf[100];--》char recvBuf[100] = {0};初始化一下 另外你的sockSrv,最后记得closesocket(sockSrv);WSACleanup();释放套接字资源 char sendBuf[100];memset(sendBuf,0,100);char recvBuf[100];memset(recvBuf,0,100); SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0); sockaddr_in addrSrv; addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY); // addrSrv.sin_family=htons(6000); //错了 addrSrv.sin_family = AF_INET; addrSrv.sin_port=htons(6000); 这个程序,,把一些错误改了,,之后,,还是有问题啊,,, #include <Winsock2.h>#include <stdio.h>void main(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return; } if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) { WSACleanup(); return; } SOCKET sockClient; sockClient=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000); connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); char recvBuf[100]; recv(sockClient,recvBuf,100,0); printf("%s\n",recvBuf); send(sockClient, "this is zhangsan",strlen("this is zhangsan")+1,0); closesocket(sockClient); WSACleanup();}这个是客户端,,, 什么问题?你的winsock函数调用的返回值你都不要需要判断的吗? 你服务器端addrSrv.sin_family=htons(6000);改为addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000); memset对char recvBuf[100]初始化!!!!!试试看!!!!!!!!!!!! 求助:下拉框操作 求教C++函数返回值问题 如何把Dialog作为一个Item嵌入ListBox CFormView的窗口,我用GetParentFrame()->SetWindowText("TITLE");居然不变,怎么回事? 那种可以并行运行的2个窗口是如何实现的? 高分求取Socket通讯框架程序 怎样在编辑框中添加回车换行?谢 come to see see 关于CFILEDIALOG的3个问题. ODBC小问题 OpenGL保存大图片 菜鸟求问FTP被动模式:客户端发送文件一切正常,但是怎么判断发送结束?
--》
char recvBuf[100] = {0};
初始化一下
memset(sendBuf,0,100);char recvBuf[100];
memset(recvBuf,0,100);
sockaddr_in addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
// addrSrv.sin_family=htons(6000); //错了
addrSrv.sin_family = AF_INET;
addrSrv.sin_port=htons(6000);
#include <Winsock2.h>
#include <stdio.h>
void main(){ WORD wVersionRequested;
WSADATA wsaData;
int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
} if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup();
return;
}
SOCKET sockClient;
sockClient=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000); connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); char recvBuf[100];
recv(sockClient,recvBuf,100,0);
printf("%s\n",recvBuf); send(sockClient, "this is zhangsan",strlen("this is zhangsan")+1,0); closesocket(sockClient);
WSACleanup();}
这个是客户端,,,
addrSrv.sin_family=htons(6000);改为
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);