回 帖 发 新 帖 刷新版面

主题:郁闷死了 怎么运行?

#include "winsock.h"

#include <stdio.h>

#define TRUE 1

/* 这个程序建立一个套接字,然后开始无限循环;每当它通过循环接收到一个连接,则打印出一个信息。当连接断开,或接收到终止信息,则此连接结束,程序再接收一个新的连接。命令行的格式是:streams */



void main( )

{

         int sock, length;

         struct sockaddr_in server;

         struct sockaddr tcpaddr;

         int msgsock;

         char buf[1024];

         int rval, len;



         /* 建立套接字 */

         sock = socket(AF_INET, SOCK_STREAM, 0);

         if (sock < 0) {

                   perror("opening stream socket");

                   exit(1);

         }

         

         /* 使用任意端口命名套接字 */  

         server.sin_family = AF_INET;

         server.sin_port = INADDR_ANY;

         if (bind(sock, (struct sockaddr *)&server, sizeof(server)) < 0) {

                   perror("binding stream socket");

                   exit(1);

         }

         

         /* 找出指定的端口号并打印出来 */

         length = sizeof(server);

         if (getsockname(sock, (struct sockaddr *)&server, &length) < 0) {

                   perror("getting socket name");

                   exit(1);

         }

         printf("socket port #%d\n", ntohs(server.sin_port));



         /* 开始接收连接 */

         listen(sock, 5);

         len = sizeof(struct sockaddr);

         do {

                   msgsock = accept(sock, (struct sockaddr *)&tcpaddr, (int *)&len);

                   if (msgsock == -1)

                            perror("accept");

                   else do{

                            memset(buf, 0, sizeof(buf));

                            if ((rval = recv(msgsock, buf, 1024,0)) < 0)

                                     perror("reading stream message");

                            if (rval == 0)

                                     printf("ending connection \n");

                            else

                                     printf("-->%s\n", buf);

                   }while (rval != 0);
                  closesocket(msgsock);

         } while (TRUE);

         

         /* 因为这个程序已经有了一个无限循环,所以套接字"sock"从来不显式关闭。然而,当进程被杀死或正常终止时,所有套接字都将自动地被关闭。*/

         exit(0);

}

编译正常
但是构件exe时
ocket.obj : error LNK2001: unresolved external symbol _closesocket@4
socket.obj : error LNK2001: unresolved external symbol _recv@16
socket.obj : error LNK2001: unresolved external symbol _accept@12
socket.obj : error LNK2001: unresolved external symbol _listen@8
socket.obj : error LNK2001: unresolved external symbol _ntohs@4
socket.obj : error LNK2001: unresolved external symbol _getsockname@12
socket.obj : error LNK2001: unresolved external symbol _bind@12
socket.obj : error LNK2001: unresolved external symbol _socket@12
Debug/socket.exe : fatal error LNK1120: 8 unresolved externals
Error executing link.exe.

socket.exe - 9 error(s), 0 warning(s)

回复列表 (共2个回复)

沙发

连接一个wsock32.lib就行了

板凳

北京 - 招募各路高手加盟

关于我们:成立一年的公司,由年轻老板投资的一群年轻人组成,工作环境熟悉,气氛轻松~~
工作地点:目前北京回龙观 半年后 海淀知春路
我们的网站: www.exgoal.com
我们的待遇: 能力越高待遇越高,一句话:决不屈才!有能力者可以技术入股!

注意:牛烘烘的,要进大公司的,嫌工作地远的,婆婆妈妈的请勿打扰。

我们要的人:
1.资深程序员:
》只要对VC++或.net很牛的你就来吧,要有项目经验的,能独立完成一个不算复杂的项目的设计开发的。有手机游戏开发经验或有兴趣者优先。

2.高级设计师:
》只要你对自己的设计有绝对信心的你就来吧,不过要会独立制作前台页面的,flash会做简单的动画就好了,不过简单不代表丑陋哦,AS会点皮毛也可以了。

3.高级后台程序员(PHP):
》还是那个,有能力的就来吧,不过要有经验的,经验越丰富越好,做过的项目越大约好,负责开发的功能越多越复杂越好,掌握的技术越多越好.......

备注:以上只是我们的期望,如果你只是一般牛,但你有一份创业的雄心的话,我们也欢迎!
联系方式:email: hr#exgoal.com(把#换成@),qq:617216040 msn:chilamchen@hotmail.com

我来回复

您尚未登录,请登录后再回复。点此登录或注册