首页 网络安全 安全学院 查看内容

windows 网络编程

2008-6-17 18:03 821 0

摘要: server1View.cpp Linking... server1View.obj : error LNK2001: unresolved external symbol __imp__listen...
关键词: socket server buffer printf error sockaddr struct unresolved sizeof WSADATA

server1View.cpp Linking... server1View.obj : error LNK2001: unresolved external symbol __imp__listen@8 server1View.obj : error LNK2001: unresolved external symbol __imp__bind@12 server1View.obj : error LNK2001: unresolved external symbol __imp__socket@12 server1View.obj : error LNK2001: unresolved external symbol __imp__htons@4 server1View.obj : error LNK2001: unresolved external symbol __imp__htonl@4 Debug/server1.exe : fatal error LNK1120: 5 unresolved externals Error executing link.exe. Creating browse info file... server1.exe - 6 error(s), 0 warning(s) 用vc6 编控制台程序的时候 当涉及到网络方面,譬如http或socket操作,这个时候你发现编译不通过类似上面的错误,其实很简单,缺了一个库文件 有俩种方法可以解决这个问题 1.在project->setting中,打开link选项卡,加上ws2_32.lib 2.在文件中加上#progmma comment(lib, "ws2_32.lib") 下面是我在网络上看到的一些源码: 因为要测试一个GPRS的UDP上传功能,于是在Windows下写了这个UDP测试小程序. Server 端程序源代码:#include <stdio.h>#include <Winsock2.h> void main(){SOCKET socket1; //InitWinsock();WSADATA wsaData;int iErrorCode;if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL{printf("Winsock无法初始化!\n");WSACleanup();return;} printf("服务器开始创建SOCKET。\n");struct sockaddr_in local;struct sockaddr_in from;int fromlen =sizeof(from);local.sin_family=AF_INET;local.sin_port=htons(27015); ///监听端口local.sin_addr.s_addr=INADDR_ANY; ///本机 socket1=socket(AF_INET,SOCK_DGRAM,0);bind(socket1,(struct sockaddr*)&local,sizeof(local));while (1){char buffer[1024]="\0";printf("waiting for message from others-------------\n");if (recvfrom(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&from,&fromlen)!=SOCKET_ERROR){printf("Received datagram from %s--%s\n",inet_ntoa(from.sin_addr),buffer);////给cilent发信息sendto(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&from,fromlen); }//Sleep(1000);}closesocket(socket1);}   Client端源代码:   #include <stdio.h>#include <Winsock2.h> void main(){SOCKET socket1;//InitWinsock();WSADATA wsaData;int iErrorCode;if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL{printf("Winsock无法初始化!\n");WSACleanup();return;} printf("服务器开始创建SOCKET。\n");struct sockaddr_in server;int len =sizeof(server);server.sin_family=AF_INET;server.sin_port=htons(27015); ///server的监听端口server.sin_addr.s_addr=inet_addr("221.223.16.32"); ///server的地址 socket1=socket(AF_INET,SOCK_DGRAM,0);while (1){char buffer[1024]="\0";printf("input message\n");scanf("%s",buffer);// printf("%s",buffer);if (strcmp(buffer,"bye")==0){printf("退出!\n");Sleep(100);closesocket(socket1);break;} if (sendto(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&server,len)!=SOCKET_ERROR){//printf("sending..\n");Sleep(100);if (recvfrom(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&server,&len) != SOCKET_ERROR)printf("rece from server:%s\n",buffer);}}closesocket(socket1);}
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部