[]socket无法连接服务器

客户端代码:
let PORT: number = 8080;
    let IP: string = "127.0.0.1";
export class NetSocket extends Laya.Socket{

        private static _instance: NetSocket;
        public static get instance(): NetSocket {
            if (!NetSocket._instance) {
                NetSocket._instance = new NetSocket();
                NetSocket._instance.endian = laya.net.Socket.LITTLE_ENDIAN;
                NetSocket._instance.initSocket();
            }
            return NetSocket._instance;
        }

        private state_: EConnectionState = EConnectionState.eDistconnected;

        private initSocket(): void {
            this.on(Laya.Event.OPEN, this, this.onConected);
            this.on(Laya.Event.ERROR, this, this.onError);
        }

        public conectToServer(): void { //“连接”按钮的回调
            if (this.connected) return;
            super.connect(IP, PORT);
        }

        ////////////////////////////////////
        protected _onOpen(...args: any[]): void {
            super._onOpen(args);
            this.state_ = EConnectionState.eConnected;
            console.log("conect to 127.0.0.1");
        }

        protected _onMessage(msg: any): void {
            super._onMessage(msg);
            console.log("receve msg : ");
            console.log(msg);
        }

        protected _onClose(...args: any[]): void {
            super._onClose(args);
            console.log("link closeed : ");
            console.log(args);
            this.reset();
        }

        protected _onError(...args: any[]): void {
            super._onError(args);
            console.log("link error : ");
            console.log(args);
            this.reset();
        }

        private reset() {
            this.state_ = EConnectionState.eDistconnected;
        }

        private onConected(): void {
            console.log("conected to server");
        }

        private onError(): void {
            console.log("error.....................");
        }

    }
 
 
服务器代码:(c语言)
 
int main(int argc, char* argv[])
{
    //初始化WSA  
    WORD sockVersion = MAKEWORD(2, 2);
    WSADATA wsaData;
    if (WSAStartup(sockVersion, &wsaData) != 0)
    {
        return 0;
    }

    //创建套接字  
    SOCKET slisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (slisten == INVALID_SOCKET)
    {
        printf("socket error !");
        return 0;
    }

    //绑定IP和端口  
    sockaddr_in sin;
    sin.sin_family = AF_INET;
    sin.sin_port = htons(8080);
    sin.sin_addr.S_un.S_addr = INADDR_ANY;
    if (bind(slisten, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
    {
        printf("bind error !");
    }

    //开始监听  
    if (listen(slisten, 5) == SOCKET_ERROR)
    {
        printf("listen error !");
        return 0;
    }

    //循环接收数据  
    SOCKET sClient;
    sockaddr_in remoteAddr;
    int nAddrlen = sizeof(remoteAddr);
    char buffData[1000] = {0};
    int buffLen = sizeof(buffData);
    char *finalStr = "";

    printf("等待连接...\n");
    sClient = accept(slisten, (SOCKADDR *)&remoteAddr, &nAddrlen);
    if (sClient == INVALID_SOCKET)
    {
        printf("accept error !");
        return 0;
    }
    printf("接收到一个连接:%s \r\n", inet_ntoa(remoteAddr.sin_addr));
    
    recv(sClient, buffData, buffLen, 0);
    printf("收到的字符串是:%s\n", buffData);

    while (true)
    {
        memset(buffData, '\0', sizeof(buffData));
        recv(sClient, buffData, buffLen, 0);
        printf("收到的字符串是:%s\n", finalStr);
 
         char * sendData = "hello client.";
         send(sClient, sendData, strlen(sendData), 0);
    }

    closesocket(slisten);
    WSACleanup();
    return 0;
}
 
 
服务器打印出一串文本后就没反应了,客户端也没有触发onConected或者_onOpen函数,下面是服务器打印的文本
 
等待连接...
接收到一个连接:127.0.0.1
收到的字符串是:GET / HTTP/1.1
Host: 127.0.0.1:8080
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://localhost:3138
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: zh-CN,zh;q=0.8
Sec-WebSocket-Key: kzjtRVMCwDoKQgwiFeIz5A==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits


已邀请:

Laya_XS

赞同来自:

别贴代码,你提供一个可以完整测试的例子,我们测试下!

要回复问题请先

商务合作
商务合作