?? tcp-server.c
字號(hào):
#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sys/wait.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#define PORT 3000 /* 定義我們的通信端口*/#define BACKLOG 10 /*定義處理隊(duì)列長(zhǎng)度*/main (){ int sockfd, new_fd; struct sockaddr_in srvaddr; struct sockaddr_in cliaddr; int sin_size;/*建立socket以便通信*/ if ( (sockfd=socket (AF_INET, SOCK_STREAM, 0)) ==-1) { perror ("Creat socket error"); exit (1); } bzero (&srvaddr, sizeof (srvaddr)); srvaddr.sin_family=AF_INET; srvaddr.sin_port=htons (PORT); srvaddr.sin_addr.s_addr=htonl (INADDR_ANY);/*綁定socket*/ if (bind (sockfd, (struct sockaddr * ) &srvaddr,sizeof (struct sockaddr)) ==-1) { perror ("Error when bind"); exit (1); }/*開始在socket上監(jiān)聽*/ if (listen (sockfd, BACKLOG) ==-1) { perror ("lisen error"); exit (1); }/*循環(huán)等待,處理連接請(qǐng)求和發(fā)送應(yīng)答信息*/ for (;;) { sin_size=sizeof (struct sockaddr_in); if ( (new_fd=accept (sockfd, (struct sockaddr * ) &cliaddr,&sin_size)) ==-1) { perror ("Error when accept"); exit (1); } printf ("Server: got connection from %s \n", inet_ntoa (cliaddr.sin_addr)); if (write (new_fd,"hello,this is server\n", 22) ==-1) perror ("Error when send string"); close (new_fd); } close (sockfd); }
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -