您的位置:首页 > 其它

一个最简单聊天程序

2009-01-11 16:50 483 查看
//客户端的代码:

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <winsock2.h>

#pragma comment(lib, "Ws2_32.lib")

SOCKET self;

long chang;

sockaddr_in local1;

WSADATA data;

int dataReturn;

bool canrecv = true;

char chat1[256] = {0};

static char addrto[50] = {0};

char recevie1[256] = {0};

int MyClient(void)

{

    dataReturn = WSAStartup(0x101,&data);

    if(dataReturn)

    {

        printf("未知错误!/n");

        WSACleanup();

        return 0;

    }

    self = socket(AF_INET,SOCK_STREAM,0);

    if(self == INVALID_SOCKET)

    {

        printf("创建socket失败!/n");

        return 0;

    }

    local1.sin_family = AF_INET;

    local1.sin_port = htons((u_short)4567);

    while(1)

    {

        printf("请输入你要登陆的IP地址:");

        scanf("%s",addrto);

        local1.sin_addr.s_addr = inet_addr(addrto);

        printf("正在登陆…………/n");

        chang = connect(self,(sockaddr *)&local1,sizeof(local1));

        if(chang == -1)

        {

            printf("connect失败!/n");

            WSACleanup();

            return 0;

        }

        while(1)

        {

            if(canrecv)

            {

                printf("………………………………………接收消息……………………………………/n");

                recv(self,recevie1,sizeof(recevie1),0);

                printf("%s/n",recevie1);

                canrecv = false;

                printf("………………………………………接收完成……………………………………/n");

            }

            else

            {

                printf("请输入你要说的话:");

                scanf("%s/0",chat1);

                send(self,chat1,sizeof(chat1),0);

                canrecv = true;

            }

        }

        

    }

    closesocket(self);

    WSACleanup();

    return 0;

}

int main(void)

{

    int yes;

    yes = MyClient();

    if(!yes)

    {

        printf("启动客户端失败!/n");

    }

    

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  聊天 socket stream