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

📄 example72.c

📁 Linux套接字中的I_O测试程序
💻 C
字号:
/* 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -