example72.c

来自「Linux套接字中的I_O测试程序」· C语言 代码 · 共 73 行

C
73
字号
/* example72.c */

/* 阻塞式I/O */

/* 实例一 */

/* 客户端程序 */

#include <sys/types.h>
#include <stdio.h>
#include <netinet/in.h>
#include <string.h>

#define SERV_PORT 8080
#define MAXLEN 1024

void client_str();

int main()
{
	int    sockfd1, sockfd2;
	struct sockaddr_in  servaddr;

	// 开两个连接
	if ((sockfd1 = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
		perror("socket error");
		exit(0);
	}
	if ((sockfd2 = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
	        perror("socket error");
	        exit(0);
	}
	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port   = htons(SERV_PORT);
	connect(sockfd1, (struct sockaddr *)&servaddr, sizeof(servaddr));
	connect(sockfd2, (struct sockaddr *)&servaddr, sizeof(servaddr));
	client_str(sockfd1, "1");
	client_str(sockfd2, "2");
	exit(0);
}

void client_str(int sockfd, char *string)
{
	char recvline[MAXLEN];
	
	if ((write(sockfd, string, strlen(string))) == 0) {
		perror("write error");
		exit(0);
	}
	if ((read(sockfd, recvline, MAXLEN)) == 0) {
	        perror("write error");
	        exit(0);
	}
	printf("%s\n", recvline);
}


/*
开个窗口运行服务器端程序
	执行:
		./example71
另开一个运行客户端程序:
	执行:
		./example72
	3秒钟后,客户端显示:
		server respons to client1
		server respons to client2
	服务器端显示:
		connect closed by client1: Success
		connect closed by client2: Success
 */

⌨️ 快捷键说明

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