基于TCP和多线程的聊天框架代码是什么
创始人
2024-12-26 03:00:13
0次

基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么/**//****************************************************
基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么【服务端】基于TCP,多线程的聊天框架代码
基于TCP和多线程的聊天框架代码是什么评注:非常完整
基于TCP和多线程的聊天框架代码是什么******************************************************/

基于TCP和多线程的聊天框架代码是什么#include "stdafx.h"
基于TCP和多线程的聊天框架代码是什么#include 
基于TCP和多线程的聊天框架代码是什么#include 
基于TCP和多线程的聊天框架代码是什么#pragma comment(lib,"ws2_32.lib")
基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么/**//*****************定义客户端连接上后的聊天线程函数************/
基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么DWORD WINAPI ClientThread(LPVOID lpParam)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么    SOCKET  sock = (SOCKET)lpParam;//定义连接客户端的套接字
基于TCP和多线程的聊天框架代码是什么    char  szBuff[2048];//定义接收缓冲区
基于TCP和多线程的聊天框架代码是什么    char  szMessage[2048];//定义发送的消息
基于TCP和多线程的聊天框架代码是什么    int  ret,
基于TCP和多线程的聊天框架代码是什么        nLeft,
基于TCP和多线程的聊天框架代码是什么        idx;//nLeft,idx用以控制写缓冲的数据,以保证数据写入正确
基于TCP和多线程的聊天框架代码是什么    //提示输入exit退出聊天
基于TCP和多线程的聊天框架代码是什么    puts("输入\"exit\"可退出聊天\n");
基于TCP和多线程的聊天框架代码是什么    //进入数据传输循环,即聊天
基于TCP和多线程的聊天框架代码是什么    //缺陷是只能一人一句来回对话
基于TCP和多线程的聊天框架代码是什么    while(1)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        /**////////////////////////// 接收  /////////////////
基于TCP和多线程的聊天框架代码是什么        ret = recv(sock,szBuff,2048,0);
基于TCP和多线程的聊天框架代码是什么        if(ret == 0) 
基于TCP和多线程的聊天框架代码是什么            break;
基于TCP和多线程的聊天框架代码是什么        else if(ret == SOCKET_ERROR)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("recv() failed:%d\n",WSAGetLastError());
基于TCP和多线程的聊天框架代码是什么            break;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        
基于TCP和多线程的聊天框架代码是什么        szBuff[ret] = '\0';
基于TCP和多线程的聊天框架代码是什么        //判断对方发过来的是否为exit退出命令,若是则退出聊天继续监听
基于TCP和多线程的聊天框架代码是什么        if(!strcmp(szBuff,"exit")) 
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("对方已经停止聊天!\n");
基于TCP和多线程的聊天框架代码是什么            printf("服务器正在监听基于TCP和多线程的聊天框架代码是什么");
基于TCP和多线程的聊天框架代码是什么            break;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        printf("客户:%s\n",szBuff);//在控制台打印客户的聊天语句
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        /**/////////////////////////// 回复  //////////////////
基于TCP和多线程的聊天框架代码是什么        printf("发送消息:"); 
基于TCP和多线程的聊天框架代码是什么        //服务器输入数据回答客户
基于TCP和多线程的聊天框架代码是什么        gets(szMessage);
基于TCP和多线程的聊天框架代码是什么        //若发送为空,则传送‘不说话’三字,并提示
基于TCP和多线程的聊天框架代码是什么        if(strlen(szMessage)==0)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("发送不能为空哦\n");
基于TCP和多线程的聊天框架代码是什么            strcpy(szMessage,"不说话!");
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        //传送数据
基于TCP和多线程的聊天框架代码是什么        nLeft = strlen(szMessage);
基于TCP和多线程的聊天框架代码是什么        idx = 0;
基于TCP和多线程的聊天框架代码是什么        //确保写进所有数据
基于TCP和多线程的聊天框架代码是什么        while(nLeft>0)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            ret = send(sock,&szMessage[idx],nLeft,0);
基于TCP和多线程的聊天框架代码是什么            if(ret == 0)
基于TCP和多线程的聊天框架代码是什么                break;
基于TCP和多线程的聊天框架代码是什么            else if(ret == SOCKET_ERROR)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么            基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么                printf("send error!%d\n",WSAGetLastError());
基于TCP和多线程的聊天框架代码是什么                break;
基于TCP和多线程的聊天框架代码是什么            }

基于TCP和多线程的聊天框架代码是什么            nLeft-=ret;
基于TCP和多线程的聊天框架代码是什么            idx +=ret;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        //判断szMessage是否为exit命令,若是则退出聊天继续监听
基于TCP和多线程的聊天框架代码是什么        if(!strcmp(szMessage,"exit")) 
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("连接正在断开!\n");
基于TCP和多线程的聊天框架代码是什么            printf("服务器继续监听基于TCP和多线程的聊天框架代码是什么\n");
基于TCP和多线程的聊天框架代码是什么            break;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    return 0;
基于TCP和多线程的聊天框架代码是什么}

基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么//主函数
基于TCP和多线程的聊天框架代码是什么int main(int argc, char* argv[])
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么    WSADATA  wsd;//定义WINSOCK32消息结构体
基于TCP和多线程的聊天框架代码是什么    SOCKET  sServSock;//服务器端的套接字
基于TCP和多线程的聊天框架代码是什么    SOCKET  sConns;//服务器的各连接
基于TCP和多线程的聊天框架代码是什么    HANDLE  hThread;//定义处理客户连接的县城
基于TCP和多线程的聊天框架代码是什么    DWORD  dwThreadId;//定义线程ID
基于TCP和多线程的聊天框架代码是什么    char  szAddress[128];//监听的地址
基于TCP和多线程的聊天框架代码是什么    struct hostent *host = NULL;//定义本地地址指针
基于TCP和多线程的聊天框架代码是什么    sockaddr_in local,
基于TCP和多线程的聊天框架代码是什么        client;//分别定义本地,客户端的地址结构
基于TCP和多线程的聊天框架代码是什么    int nSockErr;//定义出错信息
基于TCP和多线程的聊天框架代码是什么    printf("请你输入监听地址(格式如202.204.118.138):");
基于TCP和多线程的聊天框架代码是什么    gets(szAddress);
基于TCP和多线程的聊天框架代码是什么    int nAddrLen = sizeof(client);//得到地址结构长度
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //初始化Winsock32库
基于TCP和多线程的聊天框架代码是什么    if(WSAStartup(MAKEWORD(2,2),&wsd) != 0)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        printf("failed to load winsock!\n");
基于TCP和多线程的聊天框架代码是什么        return 1;
基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    //建立socket对象
基于TCP和多线程的聊天框架代码是什么    sServSock = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);//流套接字,面向连接
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //为socket分配端口地址监听
基于TCP和多线程的聊天框架代码是什么    local.sin_family = AF_INET;
基于TCP和多线程的聊天框架代码是什么    local.sin_port = htons(5150);//监听端口
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //若地址出错则监听本机地址
基于TCP和多线程的聊天框架代码是什么    if((local.sin_addr.s_addr = inet_addr(szAddress))
基于TCP和多线程的聊天框架代码是什么        ==INADDR_NONE)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        puts("所输入的地址不正确,本服务将使用本机地址!");
基于TCP和多线程的聊天框架代码是什么        //得到主机名
基于TCP和多线程的聊天框架代码是什么        if(gethostname(szAddress,sizeof(szAddress))==SOCKET_ERROR)//得到本机的域名,名称
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{   
基于TCP和多线程的聊天框架代码是什么            puts("Can't getting local host name.");
基于TCP和多线程的聊天框架代码是什么            
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        //通过主机名得到主机IP地址
基于TCP和多线程的聊天框架代码是什么        host = gethostbyname(szAddress);//得到本地ip
基于TCP和多线程的聊天框架代码是什么        if(host)
基于TCP和多线程的聊天框架代码是什么            CopyMemory(&local.sin_addr,host->h_addr_list[0],
基于TCP和多线程的聊天框架代码是什么            host->h_length);
基于TCP和多线程的聊天框架代码是什么        else
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("gethostbyname() failed:%d\n",WSAGetLastError());
基于TCP和多线程的聊天框架代码是什么            Sleep(5000);
基于TCP和多线程的聊天框架代码是什么            return 1;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //将套接字绑定到本机地址local上
基于TCP和多线程的聊天框架代码是什么    if(bind(sServSock,(LPSOCKADDR)&local,sizeof(local))==SOCKET_ERROR)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        nSockErr = WSAGetLastError();
基于TCP和多线程的聊天框架代码是什么        printf("bind error:%d!\n", nSockErr);
基于TCP和多线程的聊天框架代码是什么        return 1;
基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    //监听客户连接请求
基于TCP和多线程的聊天框架代码是什么    if(listen(sServSock,5)==SOCKET_ERROR)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        nSockErr =WSAGetLastError();
基于TCP和多线程的聊天框架代码是什么        printf("listen error:%d\n", nSockErr);
基于TCP和多线程的聊天框架代码是什么        return 1;
基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    //提示状态
基于TCP和多线程的聊天框架代码是什么    printf("服务器启动成功!\n");
基于TCP和多线程的聊天框架代码是什么    printf("服务器正在监听基于TCP和多线程的聊天框架代码是什么\n");
基于TCP和多线程的聊天框架代码是什么    //进入处理连接循环
基于TCP和多线程的聊天框架代码是什么    while(1)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        //若有客户连接,则接受连接
基于TCP和多线程的聊天框架代码是什么        sConns = accept(sServSock,(struct sockaddr *)&client,&nAddrLen);
基于TCP和多线程的聊天框架代码是什么        if(sConns == INVALID_SOCKET)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            nSockErr = WSAGetLastError();
基于TCP和多线程的聊天框架代码是什么            printf("accept error %d\n",nSockErr);
基于TCP和多线程的聊天框架代码是什么            break;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        //连接正确则提示可以开始聊天
基于TCP和多线程的聊天框架代码是什么        printf("%s:%d连接到了本服务,现在可以聊天了.\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port));
基于TCP和多线程的聊天框架代码是什么        //创建一个线程用于聊天
基于TCP和多线程的聊天框架代码是什么        hThread = CreateThread(NULL,0,ClientThread,    (LPVOID)sConns,0,&dwThreadId);
基于TCP和多线程的聊天框架代码是什么        if(hThread == NULL)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("CreateThread() failed %d\n",GetLastError());
基于TCP和多线程的聊天框架代码是什么            break;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        //聊天结束关闭聊天线程,继续监听
基于TCP和多线程的聊天框架代码是什么        CloseHandle(hThread);
基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    closesocket(sServSock);
基于TCP和多线程的聊天框架代码是什么    WSACleanup();
基于TCP和多线程的聊天框架代码是什么    return 0;
基于TCP和多线程的聊天框架代码是什么}

基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么

基于TCP和多线程的聊天框架代码是什么
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么/**//***********************************************************
基于TCP和多线程的聊天框架代码是什么客户端
基于TCP和多线程的聊天框架代码是什么************************************************************/

基于TCP和多线程的聊天框架代码是什么#include "stdafx.h"
基于TCP和多线程的聊天框架代码是什么#include 
基于TCP和多线程的聊天框架代码是什么#include 
基于TCP和多线程的聊天框架代码是什么#pragma comment(lib,"ws2_32.lib")
基于TCP和多线程的聊天框架代码是什么int main(int argc,char **argv)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么    WSADATA  wsd;//定义winsock32信息结构
基于TCP和多线程的聊天框架代码是什么    SOCKET  sClient;//定义本地套接字
基于TCP和多线程的聊天框架代码是什么    char  szBuffer[2048];//定义接受的缓冲
基于TCP和多线程的聊天框架代码是什么    char  szMessage[2048];//发送的消息
基于TCP和多线程的聊天框架代码是什么    char  szServer[128];//连接的服务器地址,IP地址
基于TCP和多线程的聊天框架代码是什么    int   ret;
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    struct  sockaddr_in server;//定义连接的服务器地址
基于TCP和多线程的聊天框架代码是什么    struct  hostent    *host =NULL;//定义地址
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //提示输入连接的服务器地址
基于TCP和多线程的聊天框架代码是什么    printf("请输入连接的服务器IP地址(如:202.204.118.138):");
基于TCP和多线程的聊天框架代码是什么    gets(szServer);
基于TCP和多线程的聊天框架代码是什么    //初始winsock库
基于TCP和多线程的聊天框架代码是什么    if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        printf("Failed to load Winsock library!\n");Sleep(5000);
基于TCP和多线程的聊天框架代码是什么        return 1;
基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    // strcpy(szMessage,"我是***");
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //建立socket对象
基于TCP和多线程的聊天框架代码是什么    sClient =  socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
基于TCP和多线程的聊天框架代码是什么    if(sClient == INVALID_SOCKET)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        printf("socket() failed :%d\n",WSAGetLastError());Sleep(5000);
基于TCP和多线程的聊天框架代码是什么        return 1;
基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //定义服务器地址以发送信息
基于TCP和多线程的聊天框架代码是什么    server.sin_family = AF_INET;
基于TCP和多线程的聊天框架代码是什么    server.sin_port = htons(5150);//端口
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    server.sin_addr.s_addr = inet_addr(szServer);
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //若没有地址,则将地址设置为本机地址
基于TCP和多线程的聊天框架代码是什么    if(server.sin_addr.s_addr == INADDR_NONE)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        puts("所输入服务器地址不正确,本将使用本机地址!");
基于TCP和多线程的聊天框架代码是什么        //得到主机名
基于TCP和多线程的聊天框架代码是什么        if(gethostname(szServer,sizeof(szServer))==SOCKET_ERROR)//得到本机的域名,名称
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{   
基于TCP和多线程的聊天框架代码是什么            puts("Can't getting local host name.");
基于TCP和多线程的聊天框架代码是什么            
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        //通过主机名得到IP
基于TCP和多线程的聊天框架代码是什么        host = gethostbyname(szServer);
基于TCP和多线程的聊天框架代码是什么        if(host == NULL)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("Unable to resolve server:%s\n",szServer);Sleep(5000);
基于TCP和多线程的聊天框架代码是什么            return 1;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        CopyMemory(&server.sin_addr,host->h_addr_list[0],host->h_length);
基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    //建立连接
基于TCP和多线程的聊天框架代码是什么    if(connect(sClient,(struct sockaddr *)&server,sizeof(server))==SOCKET_ERROR)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        printf("connect() failed:%d\n",WSAGetLastError());
基于TCP和多线程的聊天框架代码是什么        Sleep(5000);
基于TCP和多线程的聊天框架代码是什么        return 1;
基于TCP和多线程的聊天框架代码是什么    }

基于TCP和多线程的聊天框架代码是什么    //提示当前状态
基于TCP和多线程的聊天框架代码是什么    puts("连接成功,现在可以聊天了!\n");
基于TCP和多线程的聊天框架代码是什么    puts("输入\"exit\"可退出聊天\n");
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //进入聊天状态
基于TCP和多线程的聊天框架代码是什么    while(1)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么    基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        /**/////////发送
基于TCP和多线程的聊天框架代码是什么        printf("发送消息:");
基于TCP和多线程的聊天框架代码是什么        //写入发送信息
基于TCP和多线程的聊天框架代码是什么        gets(szMessage);
基于TCP和多线程的聊天框架代码是什么        if(strlen(szMessage)==0)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("发送不能为空哦\n");
基于TCP和多线程的聊天框架代码是什么            strcpy(szMessage,"不说话!");
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        //发送信息
基于TCP和多线程的聊天框架代码是什么        ret = send(sClient,szMessage,strlen(szMessage),0);
基于TCP和多线程的聊天框架代码是什么        if(ret == 0)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        else if(ret == SOCKET_ERROR)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("send() failed: %d\n",WSAGetLastError());
基于TCP和多线程的聊天框架代码是什么            Sleep(5000);
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        //判断输入信息是否为exit命令,若是则退出
基于TCP和多线程的聊天框架代码是什么        if(!strcmp(szMessage,"exit"))
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("你已经退出了聊天!");
基于TCP和多线程的聊天框架代码是什么            break;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        // printf("send %d byte\n",ret);
基于TCP和多线程的聊天框架代码是什么        
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        /**//////接收回复的信息
基于TCP和多线程的聊天框架代码是什么        ret = recv(sClient,szBuffer,2048,0);
基于TCP和多线程的聊天框架代码是什么        if(ret == 0) 
基于TCP和多线程的聊天框架代码是什么            ;
基于TCP和多线程的聊天框架代码是什么        else if(ret == SOCKET_ERROR)
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("recv()failed:%d\n",WSAGetLastError());
基于TCP和多线程的聊天框架代码是什么            
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        
基于TCP和多线程的聊天框架代码是什么        //设置接收得到的字符串,并打印
基于TCP和多线程的聊天框架代码是什么        szBuffer[ret] = '\0';
基于TCP和多线程的聊天框架代码是什么        if(!strcmp(szBuffer,"exit"))
基于TCP和多线程的聊天框架代码是什么基于TCP和多线程的聊天框架代码是什么        基于TCP和多线程的聊天框架代码是什么{
基于TCP和多线程的聊天框架代码是什么            printf("服务器已经停止聊天!");
基于TCP和多线程的聊天框架代码是什么            break;
基于TCP和多线程的聊天框架代码是什么        }

基于TCP和多线程的聊天框架代码是什么        printf("服务器:%s\n",szBuffer);
基于TCP和多线程的聊天框架代码是什么    }
 
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么    //关闭套接字
基于TCP和多线程的聊天框架代码是什么    closesocket(sClient);
基于TCP和多线程的聊天框架代码是什么    //清空winsock环境
基于TCP和多线程的聊天框架代码是什么    WSACleanup();
基于TCP和多线程的聊天框架代码是什么    return 0;
基于TCP和多线程的聊天框架代码是什么    
基于TCP和多线程的聊天框架代码是什么}

基于TCP和多线程的聊天框架代码是什么

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...