//为什么这段C的代码老是出错,Cannot open socket
// 初始化socket而已,int sock;
struct sockaddr_in clientaddr, destaddr; /* Create socket */
sock = socket(AF_INET,SOCK_DGRAM , 0);
if (INVALID_SOCKET == sock) // (sock < 0)
{
printf("%s: Cannot open socket \n", argv[0]);
exit(1);
}
解决方案 »
- 关于线程同步问题
- 我的程序做到这里卡住了:
- 快来抢分啊,很简单的问题用ATL作activeX
- vc下面显示调试信息的,可以关闭移动等,是什么控件
- 请问用atl开发ActiveX控件时,如何获得界面大小?
- 请各位帮我看看出错在那里呀.(注册表)
- 关于工具栏
- 怎样能让鼠标右键点击dialog上的任何地方(包括控件上面,和一般客户区)都能弹出同样的菜单??
- 100分救命啊!!!下午就要交程序了:AfxBeginThread引起112字节的内存泄漏,参与讨论者一律给分......
- 请问大家用VC是英文版的还是中文版的?我看不懂中文版的。50分!!!
- 如何把一个CString类型的时间,比如说10:23:43,变为秒?
- 请网络高手指点迷津
WORD sockVersion;
WSADATA wsaData;
int rVal; sockVersion = MAKEWORD(1,1);
//start dll
WSAStartup(sockVersion, &wsaData);
10093 Successful WSAStartup not yet performed.
Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.
WSAStartup都忘记记得程序结束后还有WSACleanup
void SendPacket(unsigned port, char *buf)
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,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(port); sendto(sockClient,buf,strlen(buf)+1,0,
(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
closesocket(sockClient);
WSACleanup();
}
#pragma comment(lib, "WS2_32.lib")