📄 server.c
字号:
/*
*
* server.c
* CopyRight cEnZmin cEnZmin@126.com
*
*
* use tcp test ethernet
*/
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int port = 8308;
int main(void)
{
struct sockaddr_in sin;
struct sockaddr_in pin;
int sock_descriptor;
int temp_sock_descriptor;
int address_size;
char buf[16384];
int i, len, n;
sock_descriptor = socket(AF_INET, SOCK_STREAM, 0);
if(sock_descriptor == -1)
{
perror("call to socket.\n");
exit(1);
}
bzero(&sin, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = htons(port);
if(bind(sock_descriptor, (struct sockaddr *)&sin, sizeof(sin)) == -1)
{
perror("call to bind.\n");
exit(1);
}
if(listen(sock_descriptor, 20) == -1)
{
perror("call to listen.\n");
exit(1);
}
printf("Accepting connections ...\n");
while(1)
{
temp_sock_descriptor = accept(sock_descriptor, (struct sockaddr *)&pin, &address_size);
if(temp_sock_descriptor == -1)
{
perror("call to accept.\n");
exit(1);
}
if((n = recv(temp_sock_descriptor, buf, 16384, 0)) == -1)
{
perror("call to recv.\n");
exit(1);
}
printf("receive from client:%s\n", buf);
buf[n] = '\0';
len = strlen(buf);
printf("--receive %s : %d\n", buf, len);
for(i=0; i<len; i++)
{
buf[i] = toupper(buf[i]);
}
if(send(temp_sock_descriptor, buf, len, 0) == -1)
{
perror("call to send.\n");
exit(1);
}
close(temp_sock_descriptor);
if(strcmp(buf, "QUIT") == 0)
{
break;
}
}
close(sock_descriptor);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -