📄 server.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#define PORT 1234
#define BUFF_SIZE 1024
main(void)
{
struct sockaddr_in sin;
struct sockaddr_in pin;
int sock;
int temp_sock;
int addr_size;
char buff[BUFF_SIZE];
int i, len;
/* Create socket */
if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0){
perror("call to socket!");
exit(1);
}
/* Init */
bzero(&sin, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = htons(PORT);
/* Bind */
if(bind(sock, (struct sockaddr*)&sin, sizeof(sin)) < 0){
perror("call to bind!");
exit(1);
}
/* Listen */
if(listen(sock, 10) < 0){
perror("call to listen!");
}
printf("Accepting connections ... \n");
for(;;){
temp_sock = accept(sock, (struct sockaddr*)&pin, &addr_size);
if(temp_sock < 0){
perror("call to accept!");
exit(1);
}
/* Receive data from client */
if(recv(temp_sock, buff, BUFF_SIZE, 0) < 0){
perror("call to recv!");
}
printf("receive from client: %s\n", buff);
/* Data convert at server side */
len = strlen(buff);
for(i = 0; i < len; i ++){
buff[i] = toupper(buff[i]);
}
/* Send data to client */
if(send(temp_sock, buff, len, 0) < 0){
perror("call to send!");
exit(1);
}
/* Close */
if(close(temp_sock) < 0){
perror("call to close!");
exit(1);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -