📄 example72.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 + -