黄翼 发表于 2020-2-11 19:42:18

那里语法错了,就是编译不过呢,急死我了!!

#include <stdio.h>
#include <WinSock2.h>
#pragma comment(lib,"ws2_32.lib")

int main()
{
        WORD mvVersionRequest;
        WSADATA wsaData; //声明一个套节字结构体

        int err;
        err=WSAStartup(MAKEWORD(2,2),&wsaData);
        !err?printf("已打开套接字\n"):printf("套接字打开失败\n");

        SOCKET servSock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

        //绑定套节字,用一个结构体并填写数扰
        SOCKADDR_IN sockAddr;
        memset(&sockAddr,0,sizeof(sockAddr)); //初始化为0
        sockAddr.sin_family=AF_INET;
        sockAddr.sin_addr.S_un.S_addr =inet_addr("127.0.0.1");
        sockAddr.sin_port=htons(6000);

        bind(servSock,(SOCKADDR*)&sockAddr,sizeof(SOCKADDR));
        listen(servSock,20);

        SOCKADDR_IN clintAddr;
        int nSize = sizeof(SOCKADDR);
        while(1)
        {
                //第二次握手
                SOCKET clntSock = accept(servSock,(SOCKADDR*)&clintAddr,&nSize);//获得客户端套节定大小

                //就可以向客户端发送信息,如果有服务就存在数据库,供调用
                char sendBuffer;
                sprintf(sendBuffer,"连接成功,您的IP是:%s",inet_ntoa(clintAddr.sin_addr));
                send(clntSock,sendBuffer,strlen(sendBuffer)+1,NULL);
                char receiveBuffer;
                recv(clntSock,receiveBuffer,strlen(receiveBuffer)+1,NULL);
                printf("%s\n",receiveBuffer);
                //重点,一定要关闭
                closesocket(clntSock);
                WSACleanup();
        }
        closesocket(servSock);
        WSACleanup();
        return 0;
}



请问我是那里错了呢,找了好久没找到问题.

qiuyouzhi 发表于 2020-2-11 19:51:28

我这里没有报错啊
你用的啥编译器

zltzlt 发表于 2020-2-11 19:57:59

编译器问题

黄翼 发表于 2020-2-11 20:02:36

qiuyouzhi 发表于 2020-2-11 19:51
我这里没有报错啊
你用的啥编译器

VS2010

qiuyouzhi 发表于 2020-2-11 20:05:57

黄翼 发表于 2020-2-11 20:02
VS2010

试试DevC++,我用这个没报错
但有一点警告

黄翼 发表于 2020-2-11 21:00:54

qiuyouzhi 发表于 2020-2-11 20:05
试试DevC++,我用这个没报错
但有一点警告

应该不是编译器的问题,因为,其它的都没问题.

黄翼 发表于 2020-2-11 21:24:23

解决了,也许是VS在变量声明必须放在前面.大家记得,这个调试程序一定要会,好好看小甲鱼的视频.
页: [1]
查看完整版本: 那里语法错了,就是编译不过呢,急死我了!!