-执行:gcc client.c -o client    后启动 ./client 客户端程序 启动前先启动./server-----------------------------------------
  server.c
1  #include <stdio.h>
2  #include <sys/socket.h>
3  #include <sys/types.h>
4  #include <string.h>
5  #include <netinet/in.h>
6  #include <stdlib.h>
7  #include <errno.h>
8  #include <unistd.h>
9  #include <arpa/inet.h>
10
11  #define MAXLINE 1024
12  int main(int argc,char **argv)
13  {
14  int listenfd,connfd;
15  struct sockaddr_in sockaddr;
16  char buff[MAXLINE];
17  int n;
18
19  memset(&sockaddr,0,sizeof(sockaddr));
20
21  sockaddr.sin_family = AF_INET;
22  sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
23  sockaddr.sin_port = htons(10004);
24
25  listenfd = socket(AF_INET,SOCK_STREAM,0);
26
27  bind(listenfd,(struct sockaddr *) &sockaddr,sizeof(sockaddr));
28
29  listen(listenfd,1024);
30
31
32  printf("Please wait for the client information ");
33
34  for(;;)
35  {
36  if((connfd = accept(listenfd,(struct sockaddr*)NULL,NULL))==-1)
37  {
38  printf("accpet socket error: %s errno :%d ",strerror(errno),err no);
39  continue;
40  }
41
42  n = recv(connfd,buff,MAXLINE,0);
43  buff[n] = '';
44  printf("recv msg from client:%s",buff);
45  close(connfd);
46  }
47  close(listenfd);
48  }
  -执行:gcc server.c -o server    后启动 ./server 服务端程序-------------------------------------------------------
  > 1、代码展示,功能介绍
  上面这个简单的socket通信的代码要实现的功能:从客户端发送一条消息后,服务端接收这条消息,并在服务端显示(recv msg from client:****)。
  > 2、首先介绍一下客户端和服务端中函数的功能以及函数的原形。
  1  #include <sys/socket.h>
  2  int socket(int family, int type, int protocol);   //指定期望的通信协议类型,返回的文件描述符和套接字描述符类似,我们成为套接字描述符,简称sockfd
  family:协议族