//客户端的代码:
- #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;
- }