📄 subject_62852.htm
字号:
<p>
序号:62852 发表者:每天进步一点点 发表日期:2003-11-29 10:24:01
<br>主题:这样的错误是在哪里出错?
<br>内容:TcpServer error LNK2019: 无法解析的外部符号 _send@16 ,该符号在函数 "unsigned long __stdcall ClientThread(void *)" (?ClientThread@@YGKPAX@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _WSAGetLastError@0 ,该符号在函数 "unsigned long __stdcall ClientThread(void *)" (?ClientThread@@YGKPAX@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _recv@16 ,该符号在函数 "unsigned long __stdcall ClientThread(void *)" (?ClientThread@@YGKPAX@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _WSACleanup@0 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _closesocket@4 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _inet_ntoa@4 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _ntohs@4 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _accept@12 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _listen@8 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _bind@12 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _htons@4 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _htonl@4 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _inet_addr@4 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _socket@12 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _WSAStartup@8 ,该符号在函数 "int __cdecl mian(int,char * *)" (?mian@@YAHHPAPAD@Z) 中被引用<BR>TcpServer error LNK2019: 无法解析的外部符号 _main ,该符号在函数 _mainCRTStartup 中被引用<BR>TcpServer fatal error LNK1120: 16 个无法解析的外部命令<BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:Cxt_ann 回复日期:2003-11-29 10:28:13
<br>内容:是不是少了头文件?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:每天进步一点点 回复日期:2003-11-29 10:59:05
<br>内容:回楼上 我也知道是少了个头文件 关键是不知道缺少哪个文件 <BR>下边是我的程序 大家帮忙看一下<BR><BR>//Description:<BR>// A example illustrates a simple TCP server that accepts incoming client connections.once a client<BR>//connecton is estaablished ,a thread is spwaned to read data from the clinet and echo it back(if <BR>//the echo opton is no t disableed).<BR><BR><BR>//Compile:<BR>// c1 -o Server.cpp ws2_32.lib<BR>#include <winsock.h><BR>#include <stdio.h><BR>#include <stdlib.h><BR><BR>#define DEFAULT_POST 7200<BR>#define DEFAULT_BUFFER 4096<BR><BR>int iPort =DEFAULT_POST;<BR>BOOL bInterface=FALSE,bRecvOnly=FALSE;<BR>char szAddress[128];<BR><BR><BR>//Function:usage<BR>//Description:<BR>// print usage information and exit <BR><BR>void Usage()<BR>{<BR> printf("usage: server [-p:x][-i:IP][-o]\n\n");<BR> printf(" -p:x Port number to listen on\n");<BR> printf(" -i:str Interface to listen on\n");<BR> printf(" -o Dont't echo the data back\n\n");<BR> ExitProcess(1);<BR>}<BR><BR>void ValidateArgs(int argc,char **argv)<BR>{<BR> int i;<BR> for(i=1;i<argc;i++)<BR> {<BR> if((argv[i][0]=='-')||(argv[i][0]=='/'))<BR> {<BR> switch(tolower(argv[i][1]))<BR> {<BR> case 'p':<BR> iPort=atoi(&argv[i][3]);<BR> break;<BR> case 'i':<BR> bInterface=TRUE;<BR> if(strlen(argv[i])>3)<BR> strcpy(szAddress,&argv[i][3]);<BR> break;<BR> case'o':<BR> bRecvOnly=TRUE;<BR> break;<BR> default:<BR> Usage();<BR> break;<BR> }<BR> }<BR> }<BR>}<BR><BR>DWORD WINAPI ClientThread(LPVOID lpParam)<BR>{<BR> SOCKET sock=(SOCKET)lpParam;<BR> char szBuff[DEFAULT_BUFFER];<BR> int ret,nLeft,idx;<BR><BR> while(1)<BR> {<BR> ret=recv(sock,szBuff,DEFAULT_BUFFER,0);<BR> if(ret==0)<BR> break;<BR> else if(ret==SOCKET_ERROR)<BR> {<BR> printf("recv() failed:%d\n",WSAGetLastError());<BR> break;<BR> }<BR> szBuff[ret]='\0';<BR> printf("RECV:`%s`\n",szBuff);<BR><BR> if(!bRecvOnly)<BR> {<BR> nLeft=ret;<BR> idx=0;<BR><BR> while(nLeft>0)<BR> {<BR> ret=send(sock,&szBuff[idx],nLeft,0);<BR> if(ret==0)<BR> break;<BR> else if(ret==SOCKET_ERROR)<BR> {<BR> printf("send() failed: %d\n",WSAGetLastError());<BR> break;<BR> }<BR> nLeft -=ret;<BR> idx +=ret;<BR> }<BR> }<BR><BR><BR> }<BR> return 0;<BR><BR>}<BR><BR>int mian(int argc,char **argv)<BR>{<BR> WSADATA wsd;<BR> SOCKET sListen,sClient;<BR> int iAddrSize;<BR> HANDLE hThread;<BR> DWORD dwThreadId;<BR> struct sockaddr_in local,client;<BR> ValidateArgs(argc,argv);<BR> if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)<BR> {<BR> printf("Failed to load Winsock");<BR> return 1;<BR> }<BR><BR> sListen=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);<BR> if(sListen==SOCKET_ERROR)<BR> {<BR> printf("socket() failed %d\n",WSAGetLastError());<BR> return 1;<BR> }<BR><BR> if(bInterface)<BR> {<BR> local.sin_addr.s_addr=inet_addr(szAddress);<BR> if(local.sin_addr.s_addr==INADDR_NONE)<BR> Usage();<BR> }<BR> else<BR> local.sin_addr.s_addr=htonl(INADDR_ANY);<BR> local.sin_family=AF_INET;<BR> local.sin_port=htons(iPort);<BR><BR> if(bind(sListen,(struct sockaddr *)&local,sizeof(local))==SOCKET_ERROR)<BR> {<BR> printf("bind() failed:%d\n",WSAGetLastError());<BR> return 1;<BR> }<BR> listen(sListen,8);<BR><BR> while(1)<BR> {<BR> iAddrSize=sizeof(client);<BR> sClient=accept(sListen,(struct sockaddr *)&client,&iAddrSize);<BR> if(sClient==INVALID_SOCKET)<BR> {<BR> printf("accept() failed: %d\n",WSAGetLastError());<BR> break;<BR> }<BR> printf("Accepted client: %s:%d\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port));<BR><BR> hThread=CreateThread(NULL,0,ClientThread,(LPVOID)sClient,0,&dwThreadId);<BR> if(hThread=NULL)<BR> {<BR> printf("CreatThread() failed: %d\n",GetLastError());<BR> break;<BR> }<BR> CloseHandle(hThread);<BR><BR> }<BR> closesocket(sListen);<BR><BR> WSACleanup();<BR> return 0;<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:全都有人用? 回复日期:2003-11-29 11:11:38
<br>内容:哥们我已经能运行了!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:每天进步一点点 回复日期:2003-11-29 11:19:16
<br>内容:你是在什么环境编译的 我的是在 visual studio .net 2003
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:全都有人用? 回复日期:2003-11-29 11:25:36
<br>内容:我在vc6下,有没有msn加我!<BR>wdllove@sina.com
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:每天进步一点点 回复日期:2003-11-29 15:50:40
<br>内容:找到一个错误了 是main 被我写成 mian了 <BR>不过还是编译出错 不知道为什么
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -