正文

test2005-08-08 16:59:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/3619.html

分享到:

#include <winsock.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <windows.h>
#define PORT 100
#define socklen_t int
#pragma comment(lib, "wsock32.lib")
SOCKET client;
char server[50];
void ClientThread()
{
    char message[256];
    while(1)
    {
        strcpy(message,"");
        int len=recv(client,message,sizeof(message),0);
        if (strcmp(message,"")!=0)
        {
            cout<<"从"<<server<<"得到消息:\n";
            //cout<<"len:"<<len<<endl;
            message[len]='\0';
            cout<<message;
        }
    }
}
int main()
{
    char message[256];
    sockaddr_in srv;
    WSADATA wsadata;
    WORD VersionRequested=MAKEWORD(1,1);
    if (WSAStartup(VersionRequested,&wsadata))
    {
        cout<<"Wsadata start failed\n";
        return -1;
    }
    client=socket(PF_INET,SOCK_STREAM,0);
    if (client==INVALID_SOCKET)
    {
        cout<<"Socket create failed\n";
        return -1;
    }
    srv.sin_family=PF_INET;
    srv.sin_addr.s_addr=htonl(INADDR_ANY);
    srv.sin_port=htons(PORT);
    cout<<"请输入服务器IP:";
    cin>>server;
    srv.sin_addr.s_addr = inet_addr(server);
    if (connect(client,(struct sockaddr *)&srv,sizeof(srv))==SOCKET_ERROR)
    {
        cout<<"无法连接服务器.\n";
        WSACleanup();
        return -1;
    }
    while(1)
    {
        DWORD thread;
        CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(ClientThread),NULL,0,&thread);
        while(fgets(message,strlen(message),stdin))
        {
            cout<<"发出消息:"<<message<<endl;
            send(client,message,strlen(message),0);
        }
    }
    closesocket(client);
    WSACleanup();
}  

阅读(2691) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册