1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wswgnh-chatWithC

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
client.cpp 1.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
= Отправлено 19.12.2018 09:32 3d6c8a5
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<sys/wait.h>
#include <arpa/inet.h>
#include <unistd.h>
#define DEST_PORT 8811//目标地址端口号
#define DEST_IP "127.0.0.1"/*目标地址IP,这里设为本机*/
int main(){
int sockfd;
struct sockaddr_in dest_addr;
char sendBuf[200],recvBuf[200];
pid_t pid;
sockfd=socket(AF_INET,SOCK_STREAM,0);/*建立socket*/
if(sockfd==-1){
perror("创建socket失败");
return 0;
}
//参数意义见上面服务器端
dest_addr.sin_family=AF_INET;
dest_addr.sin_port=htons(DEST_PORT);
dest_addr.sin_addr.s_addr=inet_addr(DEST_IP);
bzero(&(dest_addr.sin_zero),8);
if(connect(sockfd,(struct sockaddr*)&dest_addr,sizeof(struct sockaddr))==-1){//连接方法,传入句柄,目标地址和大小
perror("连接服务器错误");
return 0;
}
pid = fork();
if (pid < 0) {
perror("创建子进程失败");
exit(0);
} else if (pid) {
while (1) {
printf("Client:");
fgets(sendBuf,200,stdin);
if (send(sockfd,sendBuf,strlen(sendBuf),0) != strlen(sendBuf)) {
perror("发送错误");
exit(0);
}
memset(sendBuf,0,200);
}
} else {
while (1) {
if (recv(sockfd,recvBuf,200,0) == -1) {
perror("获取数据错误");
exit(0);
}
printf("\n服务器:%s\n",recvBuf);
memset(recvBuf,0,200);
}
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wswgnh-chatWithC.git
git@api.gitlife.ru:oschina-mirror/wswgnh-chatWithC.git
oschina-mirror
wswgnh-chatWithC
wswgnh-chatWithC
master