⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.c

📁 在linux下实现的client/server模式的程序
💻 C
字号:
#include <stdio.h>#include <sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#define MAX_CONNECT 2static int libsk_create_server(char *ip, short port){       	int listenfd;	struct sockaddr_in cliaddr, servaddr;	listenfd = socket(AF_INET, SOCK_STREAM, 0);	bzero(&servaddr, sizeof(servaddr));	servaddr.sin_family = AF_INET;	servaddr.sin_addr.s_addr = inet_addr(ip);	servaddr.sin_port = htons(port);	bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr));	if(listen(listenfd, MAX_CONNECT) < 0)	{		listenfd = -1;	}	return listenfd;}static int libsk_accept(int sk){	int fd;	struct sockaddr_in addr;	int sin_size=sizeof(struct sockaddr_in);	fd = accept(sk , (struct sockaddr*)&addr , &sin_size);	return fd;}static int libsk_connect_to(char *serverip, short port){	int fd, ret;	struct sockaddr_in servaddr;	if(!serverip)	{	}	fd = socket(AF_INET, SOCK_STREAM, 0);	bzero(&servaddr, sizeof(servaddr));	servaddr.sin_family = AF_INET;	servaddr.sin_port = htons(port);	inet_pton(AF_INET, serverip, &servaddr.sin_addr);	ret = connect(fd, (struct sockaddr *) &servaddr, sizeof(servaddr));	if(ret == -1)	{		close(fd);		fd = -1;	}	return fd;}static int libsk_close(int sk){	if((sk != 0) && (sk != -1))	{		close(sk);	}	return 0;}int main(int argc, char *argv[]){	int  sk;	if(argc < 3)	{		printf("use:%s server port data", argv[0]);		exit(0);	}	sk = libsk_connect_to(argv[1], atoi(argv[2]));	if(sk < 0)	{		printf("connect to server failed\n");		exit(0);	}	else	{		char buf[32];		memset(buf , 0 , 32);		if(argc >= 4)		{			int size = strlen(argv[3]) > 32 ? 32 : strlen(argv[3]);			printf("size = %d strlen(argv[3]) %d \n" , size , strlen(argv[3]));			memcpy(buf , argv[3] , size);		}		else		{			snprintf(buf , 32 , "%s" , "user put null\n");		}		write(sk, buf, 32);		libsk_close(sk);	}	exit(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -