精华内容
下载资源
问答
  • 配置虚拟机ip(1)打开虚拟机设置 (2)设置网络连接模式 (3)在Ubuntu下设置ip (4)测试两台电脑是否连通在终端下输入ping 192.168.3.X二、编写服务器端和客户端程序1.客户端代码#include <stdio.h...

    一、配置两台电脑的网络

    1.查看物理机ip地址

    (1)Win+R打开运行,输入cmd

     

    (2)在cmd下输入ipconfig得到本机ip为192.168.3.2

     

    2.配置虚拟机ip

    (1)打开虚拟机设置
     
    (2)设置网络连接模式
     
    (3)在Ubuntu下设置ip
     

    注意:物理机和虚拟机的IP不能一样,但必须处于同一网段。
    我测试的时候物理机IP是192.168.3.2,虚拟机IP设置的是192.168.3.190。

    (4)测试两台电脑是否连通

    在终端下输入ping 192.168.3.X

    二、编写服务器端和客户端程序

    1.服务器端代码

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <sys/un.h>
    #include <arpa/inet.h>
    #include <netinet/in.h>
    
    const int port = 8888;
    const char* ip = "192.168.64.190"; //服务器端IP
    
    int main()
    {
    	  int ser_sock = socket(AF_INET, SOCK_STREAM, 0); //创建套接字,即创建socket 
    	  if(ser_sock < 0)
    	  {
    		  perror("socket");
    		  return 1;
    	  }
    
    	  struct sockaddr_in addr; //绑定信息,即命名socket
    	  addr.sin_family = AF_INET; 
    	  addr.sin_port = htons(port); 
    	  addr.sin_addr.s_addr = inet_addr(ip); 
    	  /*inet_addr函数将用点分十进制字符串表示的
    	  IPv4地址转化为用网络字节序整数表示的IPv4地址 */
    	  
    	  if(bind(ser_sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) 
    	  {	            
    	       perror("bind"); 
    	       return 2; 	   
    	  } 
    
    	  int listen_sock = listen(ser_sock, 5); //监听socket
    	  if(listen_sock < 0)
    	  {
    		  perror("listen");
    		  return 3;
    	  }
    
          /*接受连接*/
    	  struct sockaddr_in peer;
    	  socklen_t peer_len;
    	  char buf[1024];
    	  int accept_fd = accept(ser_sock, (struct sockaddr*)&peer, &peer_len);
    
    	  if(accept_fd < 0)
    	  {
    		  perror("accept");
    		  return 4;
    	  }
    	  else
    	  {
    		  printf("connect from %s, port %d \n", inet_ntop(AF_INET,&peer.sin_addr, buf, 1024), ntohs(peer.sin_port));
    	  }
    
    	  while(1)
    	  {
    		  memset(buf, '\0', sizeof(buf));
    		  ssize_t size = read(accept_fd, buf, sizeof(buf) - 1);
    		  if(size > 0)
    		  {
    			  printf("client: %s\n", buf);
    		  }
    		  else if(size == 0)
    		  {
    			  printf("read is done...\n");
    			  break;
    		  }
    		  else 
    		  {
    			  perror("read");
    			  break;
    		  }
              printf("server:");
    		  fflush(stdout);
              size = read(0, buf, sizeof(buf) - 1);
    		  if(size > 0)
    		  {
    			  buf[size - 1] = '\0';
    		  }
    		  else if(size == 0)
    		  {
    			  printf("read is done...\n");
    			  break;
    		  }
    		  else
    		  {
    			  perror("read");
    			  break;
    		  }	  
    		  write(accept_fd, buf, strlen(buf));
    	  }
    		close(ser_sock);
    	  return 0;
    }

    2.客户端代码

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <sys/un.h>
    #include <arpa/inet.h>
    #include <netinet/in.h>
    
    const int port = 8888;
    const char* ip = "192.168.64.190"; //服务器IP
    
    int main()
    {
    	  int clt_sock = socket(AF_INET, SOCK_STREAM, 0); //创建套接字,即创建socket 
    	  if(clt_sock < 0)
    	  {
    		  perror("socket");
    		  return 1;
    	  }
    
    	  struct sockaddr_in addr; //绑定信息,即命名socket 
    	  addr.sin_family = AF_INET; 
    	  addr.sin_port = htons(port); 
    	  addr.sin_addr.s_addr = inet_addr(ip); 
    	  /*inet_addr函数将用点分十进制字符串表示的
    	  IPv4地址转化为用网络字节序整数表示的IPv4地址 */
    
    	  //发起连接
    	  socklen_t addr_len = sizeof(addr);
    	  int connect_fd = connect(clt_sock, (struct sockaddr*)&addr, addr_len);
    	  if(connect_fd < 0)
    	  {
    		  perror("connect");
    		  return 2;
    	  }
    	  char buf[1024];
    
    	  while(1)
    	  {
    		  memset(buf, '\0', sizeof(buf));
    		  printf("client please enter: ");
    		  fflush(stdout);
    		  ssize_t size = read(0, buf, sizeof(buf) - 1);
    		  if(size > 0)
    		  {
    			  buf[size - 1] = '\0';
    		  }
    		  else if(size == 0)
    		  {
    			  printf("read is done...\n");
    			  break;
    		  }
    		  else
    		  {
    			  perror("read");
    			  return 4;
    		  }
    		 // printf("client: %s\n", buf);
              write(clt_sock, buf, strlen(buf));
    		  size = read(clt_sock, buf, sizeof(buf));
    		  if(size > 0)
    		  {
    		 	  buf[size] = '\0';
    		  }
    		  else if(size == 0)
    		  {
    			  printf("read is done...\n");
    			  break;
    		  }
    		  else 
    		  {
    			  perror("read");
    			  return 5;
    		  }
    		  printf("server: %s\n", buf);
    	   }
    	  close(clt_sock);
    	  return 0;
    }

    三、运行结果


     
    展开全文
  • linux启动mongodb服务器端和客户端

    千次阅读 2018-09-05 13:45:34
    前提是你安装了 mongodb并且在mongodb-3.6.5下面有一个叫data的文件夹,文件夹内有log db两个文件夹 打开linux终端进入你的安装目录的bin下 比如/usr/local/mongo/mongodb-3.6.5/bin 执行以下命令 sudo ./...

    比如你的安装路径是  /usr/local/mongo/mongodb-3.6.5

    前提是你安装了 mongodb并且在mongodb-3.6.5下面有一个叫data的文件夹,文件夹内有log 和db两个文件夹

    打开linux终端进入你的安装目录的bin下

    比如/usr/local/mongo/mongodb-3.6.5/bin

    执行以下命令

    sudo  ./mongod --dbpath=/usr/local/mongo/mongodb-3.6.5/data/db

    在最后看见以下语句说明启动成功了

    2018-09-05T11:41:07.219+0800 I NETWORK  [initandlisten] waiting for connections on port 27017

     

    现在服务器启动Success!!!!让我们看一下客户端段如何启动该重新打开一个终端,注意服务器不能关!!!

    打开后进入/usr/local/mongo/mongodb-3.6.5/bin目录下执行    

    ./mongo

    末尾出现以下语句

    2018-09-05T11:41:07.005+0800 I CONTROL  [initandlisten]

    >

    就代表成功启动客户端了

     

     

    展开全文
  • Linux服务器端,php为客户端,socket通信
  • 基于UDP的服务器端和客户端

    千次阅读 2019-07-18 11:06:04
    UDP中的服务器端和客户端没有连接 UDP 不像 TCP,无需在连接状态下交换数据,因此基于 UDP 的服务器端和客户端也无需经过连接过程。也就是说,不必调用 listen() accept() 函数。UDP 中只有创建套接字的过程...

    前面的文章中我们给出了几个 TCP 的例子,对于 UDP 而言,只要能理解前面的内容,实现并非难事。

    UDP中的服务器端和客户端没有连接

    UDP 不像 TCP,无需在连接状态下交换数据,因此基于 UDP 的服务器端和客户端也无需经过连接过程。也就是说,不必调用 listen() 和 accept() 函数。UDP 中只有创建套接字的过程和数据交换的过程。

    UDP服务器端和客户端均只需1个套接字

    TCP 中,套接字是一对一的关系。如要向 10 个客户端提供服务,那么除了负责监听的套接字外,还需要创建 10 套接字。但在 UDP 中,不管是服务器端还是客户端都只需要 1 个套接字。之前解释 UDP 原理的时候举了邮寄包裹的例子,负责邮寄包裹的快递公司可以比喻为 UDP 套接字,只要有 1 个快递公司,就可以通过它向任意地址邮寄包裹。同样,只需 1 个 UDP 套接字就可以向任意主机传送数据。

    基于UDP的接收和发送函数

    创建好 TCP 套接字后,传输数据时无需再添加地址信息,因为 TCP 套接字将保持与对方套接字的连接。换言之,TCP 套接字知道目标地址信息。但 UDP 套接字不会保持连接状态,每次传输数据都要添加目标地址信息,这相当于在邮寄包裹前填写收件人地址。

    发送数据使用 sendto() 函数:

     
    1. ssize_t sendto(int sock, void *buf, size_t nbytes, int flags, struct sockaddr *to, socklen_t addrlen); //Linux
    2. int sendto(SOCKET sock, const char *buf, int nbytes, int flags, const struct sockadr *to, int addrlen); //Windows

    Linux 和 Windows 下的 sendto() 函数类似,下面是详细参数说明:

    • sock:用于传输 UDP 数据的套接字;
    • buf:保存待传输数据的缓冲区地址;
    • nbytes:带传输数据的长度(以字节计);
    • flags:可选项参数,若没有可传递 0;
    • to:存有目标地址信息的 sockaddr 结构体变量的地址;
    • addrlen:传递给参数 to 的地址值结构体变量的长度。


    UDP 发送函数 sendto() 与TCP发送函数 write()/send() 的最大区别在于,sendto() 函数需要向他传递目标地址信息。

    接收数据使用 recvfrom() 函数:

     
    1. ssize_t recvfrom(int sock, void *buf, size_t nbytes, int flags, struct sockadr *from, socklen_t *addrlen); //Linux
    2. int recvfrom(SOCKET sock, char *buf, int nbytes, int flags, const struct sockaddr *from, int *addrlen); //Windows

    由于 UDP 数据的发送端不定,所以 recvfrom() 函数定义为可接收发送端信息的形式,具体参数如下:

    • sock:用于接收 UDP 数据的套接字;
    • buf:保存接收数据的缓冲区地址;
    • nbytes:可接收的最大字节数(不能超过 buf 缓冲区的大小);
    • flags:可选项参数,若没有可传递 0;
    • from:存有发送端地址信息的 sockaddr 结构体变量的地址;
    • addrlen:保存参数 from 的结构体变量长度的变量地址值。

    基于UDP的回声服务器端/客户端

    下面结合之前的内容实现回声客户端。需要注意的是,UDP 不同于 TCP,不存在请求连接和受理过程,因此在某种意义上无法明确区分服务器端和客户端,只是因为其提供服务而称为服务器端,希望各位读者不要误解。

    下面给出 Windows 下的代码,Linux 与此类似,不再赘述。

    服务器端 server.cpp:

     
    1. #include <stdio.h>
    2. #include <winsock2.h>
    3. #pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll
    4.  
    5. #define BUF_SIZE 100
    6.  
    7. int main(){
    8. WSADATA wsaData;
    9. WSAStartup( MAKEWORD(2, 2), &wsaData);
    10.  
    11. //创建套接字
    12. SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0);
    13.  
    14. //绑定套接字
    15. sockaddr_in servAddr;
    16. memset(&servAddr, 0, sizeof(servAddr)); //每个字节都用0填充
    17. servAddr.sin_family = PF_INET; //使用IPv4地址
    18. servAddr.sin_addr.s_addr = htonl(INADDR_ANY); //自动获取IP地址
    19. servAddr.sin_port = htons(1234); //端口
    20. bind(sock, (SOCKADDR*)&servAddr, sizeof(SOCKADDR));
    21.  
    22. //接收客户端请求
    23. SOCKADDR clntAddr; //客户端地址信息
    24. int nSize = sizeof(SOCKADDR);
    25. char buffer[BUF_SIZE]; //缓冲区
    26. while(1){
    27. int strLen = recvfrom(sock, buffer, BUF_SIZE, 0, &clntAddr, &nSize);
    28. sendto(sock, buffer, strLen, 0, &clntAddr, nSize);
    29. }
    30.  
    31. closesocket(sock);
    32. WSACleanup();
    33. return 0;
    34. }

    代码说明:
    1) 第 12 行代码在创建套接字时,向 socket() 第二个参数传递 SOCK_DGRAM,以指明使用 UDP 协议。

    2) 第 18 行代码中使用htonl(INADDR_ANY)来自动获取 IP 地址。

    利用常数 INADDR_ANY 自动获取 IP 地址有一个明显的好处,就是当软件安装到其他服务器或者服务器 IP 地址改变时,不用再更改源码重新编译,也不用在启动软件时手动输入。而且,如果一台计算机中已分配多个 IP 地址(例如路由器),那么只要端口号一致,就可以从不同的 IP 地址接收数据。所以,服务器中优先考虑使用 INADDR_ANY;而客户端中除非带有一部分服务器功能,否则不会采用。

    客户端 client.cpp:

     
    1. #include <stdio.h>
    2. #include <WinSock2.h>
    3. #pragma comment(lib, "ws2_32.lib") //加载 ws2_32.dll
    4.  
    5. #define BUF_SIZE 100
    6.  
    7. int main(){
    8. //初始化DLL
    9. WSADATA wsaData;
    10. WSAStartup(MAKEWORD(2, 2), &wsaData);
    11.  
    12. //创建套接字
    13. SOCKET sock = socket(PF_INET, SOCK_DGRAM, 0);
    14.  
    15. //服务器地址信息
    16. sockaddr_in servAddr;
    17. memset(&servAddr, 0, sizeof(servAddr)); //每个字节都用0填充
    18. servAddr.sin_family = PF_INET;
    19. servAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
    20. servAddr.sin_port = htons(1234);
    21.  
    22. //不断获取用户输入并发送给服务器,然后接受服务器数据
    23. sockaddr fromAddr;
    24. int addrLen = sizeof(fromAddr);
    25. while(1){
    26. char buffer[BUF_SIZE] = {0};
    27. printf("Input a string: ");
    28. gets(buffer);
    29. sendto(sock, buffer, strlen(buffer), 0, (struct sockaddr*)&servAddr, sizeof(servAddr));
    30. int strLen = recvfrom(sock, buffer, BUF_SIZE, 0, &fromAddr, &addrLen);
    31. buffer[strLen] = 0;
    32. printf("Message form server: %s\n", buffer);
    33. }
    34.  
    35. closesocket(sock);
    36. WSACleanup();
    37. return 0;
    38. }

    先运行 server,再运行 client,client 输出结果为:

    Input a string: C语言中文网
    Message form server: C语言中文网
    Input a string: c.biancheng.net Founded in 2012
    Message form server: c.biancheng.net Founded in 2012
    Input a string:


    从代码中可以看出,server.cpp 中没有使用 listen() 函数,client.cpp 中也没有使用 connect() 函数,因为 UDP 不需要连接。

    参考文章:http://c.biancheng.net/view/2359.html

    展开全文
  • 支持 tcp udp ipv4 ipv6 跨平台运行服务器端客户端
  • TCP的socket的服务器端和客户端实例: 1、服务器端步骤: socket()->bind()->listen()->accept()->read()->write()->close() 2、客户端步骤: socket()->connect()->write()->read()->close() 服务器端代码: ...

    TCP的socket的服务器端和客户端实例:

    1、服务器端步骤:

    socket()->bind()->listen()->accept()->read()->write()->close()

    2、客户端步骤:

    socket()->connect()->write()->read()->close()

    服务器端代码:

    #include <sys/socket.h>
    #include <sys/types.h>
    #include <unistd.h> 
    #include <arpa/inet.h>
    #include <netinet/in.h>
    #include <errno.h>
    #include <strings.h>
    #include <ctype.h> 
                 
    char host_name[20];
    int port = 8000;
    
    int main()
    {   
            
            struct sockaddr_in sin,pin;
            int sock_descriptor,temp_sock_descriptor,address_size;
            int i , len , on=1;
            char buf[16384];
        
            sock_descriptor = socket(AF_INET,SOCK_STREAM,0);
            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");
                    exit(1);
            }
            if(listen(sock_descriptor,100) == -1)
            {
                    perror("call to listem");
                    exit(1);
            }
            printf("Accpting connections...\n");
    
            while(1)
            {
                    address_size = sizeof(pin);
                    temp_sock_descriptor = accept(sock_descriptor,(struct sockaddr *)&pin,&address_size);
                    if(temp_sock_descriptor == -1)
                    {
                            perror("call to accept");
                            exit(1);
                    }
                    if(recv(temp_sock_descriptor,buf,16384,0) == -1)
                    {
                            perror("call to recv");
                            exit(1);
                    }
                    inet_ntop(AF_INET,&pin.sin_addr,host_name,sizeof(host_name));
                    printf("received from client(%s):%s\n",host_name,buf);
    
                    len = strlen(buf);
                    for(i = 0 ; i  < len ; i++)
                    {
                            buf[i] =  toupper(buf[i]);
                    }
    
                    if(send(temp_sock_descriptor,buf,len+1,0) == -1)
                    {
                            perror("call to send");
                            exit(1);
    
                    }
                    close(temp_sock_descriptor);
    
    
            }
    
    
    
    }
    

    客户端代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/socket.h>
    #include <sys/types.h>
    #include <unistd.h>
    #include <arpa/inet.h>
    #include <netinet/in.h>
    #include <errno.h>
    #include <strings.h>
    #include <ctype.h>
    
    
    char * host_name = "127.0.0.1";
    int port = 8000;
    
    int main(int argc , char * argv[])
    {
            char buf[8192];
            //char message[256];
            int socket_descriptor;
            struct sockaddr_in pin;
            char * str ="A default test string";
            if(argc < 2)
            {
                    printf("we will send a default test string.\n");
    
            }
            else
            {
                    str = argv[1];
                    if(argc == 3)
                    {
                            host_name = argv[2];
                    }
            }
    
            bzero(&pin,sizeof(pin));
            pin.sin_family = AF_INET;
            inet_pton(AF_INET,host_name,&pin.sin_addr);
            pin.sin_port = htons(port);
            if((socket_descriptor =  socket(AF_INET,SOCK_STREAM,0)) == -1)
            {
                    perror("error opening socket \n");
                    exit(1);
            }
            if(connect(socket_descriptor,(struct sockaddr * )&pin,sizeof(pin)) == -1)
            {
                    perror("error connecting to socket \n");
                    exit(1);
            }
    
            printf("sending message %s to server ..\n",str);
            if( write(socket_descriptor,str,strlen(str)+1) == -1 )
            {
                    perror("error in send \n");
                    exit(1);
            }
    
            printf("..sent message ...wait for message..\n");
            if( read(socket_descriptor,buf,8192) == -1 )
            {
                    perror("error in receiving response from server \n");
                    exit(1);
            }
    
            printf("\nResponse from server:\n\n%s\n",buf);
            close(socket_descriptor);
            return 1;
    
    
    }
    


     

     

    运行结果:

    服务器端:

    [root@rac2 ~]# ./server_iter 
    Accpting connections...
    received from client(127.0.0.1):A default test string
    received from client(127.0.0.1):yang
    


    客户端:

    [root@rac2 ~]# ./client_iter 
    we will send a default test string.
    sending message A default test string to server ..
    ..sent message ...wait for message..
    
    Response from server:
    
    A DEFAULT TEST STRING
    [root@rac2 ~]# ./client_iter yang 127.0.0.1
    sending message yang to server ..
    ..sent message ...wait for message..
    
    Response from server:
    
    YANG
    [root@rac2 ~]# 


     

    展开全文
  • 在调试局域网内通过UDP协议获取其他设备IP地址时,服务器使用UDP 广播后, 客户端设备无响应....服务器端向: 255.255.255.255:6023发送UDP广播: serverUDP.c #include #include #include #include #inc
  • 1.服务器端在同一时刻只与一个客户端相连,并提供回声服务。 2.服务器端依次向5个客户端提供服务并退出。 3.客户端接收用户输入的字符串并发送到服务器端。 4.服务器端将接收的字符串数据传回客户端,即“回声”。 5...
  • UDP中的服务器端和客户端没有连接 UDP 不像 TCP,无需在连接状态下交换数据,因此基于 UDP 的服务器端和客户端也无需经过连接过程。也就是说,不必调用 listen() accept() 函数。UDP 中只有创建套接字的过程...
  • TCP服务器端和客户端程序设计

    万次阅读 多人点赞 2011-12-02 17:40:59
    一、实验目的 学习掌握Linux下的TCP服务器基本原理基本编程方法,体会TCP与UDP编程的不同,UDP编程:...编写Linux下TCP服务器套接字程序,程序运行服务器等待客户的连接,一旦连接成功,则显示客户的IP地址
  • 服务器端安装安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入sudo apt-get...当前使用的ubuntu镜像中已经安装好了mysql服务器端,无需再安装,并且设置成了开机自启动服务器用于接收客户端的请求、执...
  • 以下代码测试环境为: 服务器:CentOS 7.5 64位 客户端1:Ubuntu 16.04 LTS 客户端2:Win10 Server(服务器...1.实现Linux服务器向windows客户端和Linux客户端发送数据 1.1 Linux服务器端 1.1.1 Demo 1.1.2 ...
  • Linux-Rsync服务器/客户端搭建

    万次阅读 2018-08-15 13:42:37
    rsync分为服务器端客户端服务器端搭建的步骤会比客户端多一些。 rsync服务器是指daemon方式运行rsync服务的服务器,需要打开rsync daemon启动xineted服务,默认端口受873。 rsync客户端是发起rsync连接的...
  • 西软服务器端和客户端安装教程V1.0    前言:鉴于集团酒店开业速度迅猛,在系统预培训上存在一定延迟,现在根据实际情况,酒店管理集团在总部经过测试并安装过多台电脑,编写了以下安装流程,力求把所遇到的问题...
  • Android(客户端)与Linux(服务器端)进行TCP数据通信

    千次阅读 热门讨论 2017-01-14 23:54:59
    最近,做项目需要使用Android(客户端)与Linux(服务器端)进行数据通信,这学期也刚好学习了Linux网络编程的一些知识。所以,实现了一个小Demo,供有需要的朋友参考一下。效果如下:客户端服务器端发送字符串数据,...
  • Linux SVN 服务器配置以及客户端使用

    千次阅读 2012-09-09 21:22:54
    添加列表到服务器端 . 此时并没有真正拷贝到服务器上 , 需再在 Commit (提交)操作才会拷贝      在版本库浏览器中就可以看到刚才提交的文件了 , 此时提交的版本为 1. ...
  • 于是就安装了oracle 11g 的 32位客户端,结果就坑了! 发现 sqlplu / as sysdba 进不去 报错,ORA-01034: ORACLE not available ORA-27101 但是 sqlplus system/system@orcl 又能进于是在网上找啊 找 找了好久...
  • VNC服务器端客户端配置

    万次阅读 2013-07-14 10:13:29
    环境:Win7+ubuntu ...VNC for linux:VNC-5.0.5-Linux-x86-ANY.tar.gz VNC for Windows:VNC-5.0.5-Windows.exe 2,安装VNC server 在ubuntu环境下执行命令: hadoop@master-server:~/VNC-5.0.5-Linux-x86$ sudo
  • sysLog 服务器端客户端配置

    千次阅读 2014-10-16 14:59:27
    Syslog是一个通过IP网络允许一台机器发送事件通知信息给事件收集者(Syslog服务器或者Syslog Daemon)的协议。换言之,就是一台机器或者设备能够被配置,使之产生Syslog信息并且发送到一台特定的Syslog服务器/...
  • 现在是在一个树莓派上执行编写好的...涉及到的主要是客户端断开连接后,服务器端继续send时,进程会退出,这是会涉及到信号SIGPIPE的知识,以及使用send中的最后参数或者sigaction的方法,避免进程被杀死。 根据...
  • PHP SOCKET 服务器端接收客户端请求

    千次阅读 2011-12-14 17:41:18
    让我们以一个简单的例子开始---一个接收输入字符串,处理并返回这个字符串到客户端的TCP服务.下面是相应的代码: PHP 代码:   // 设置一些基本的变量 $host = "192.168.1.99"; $port = 1234; // 设置...
  • 服务器监听并接受一个客户端链接的时候, 可以不断向客户端发送数据, 这时如果客户端断开socket链接, 服务器继续向一个关闭的socket 发送数据(send, write)的时候, 系统会默认对服务器进程发送一个SIGPIPE信号, 这...
  • 本资源为代码类资源,linux端代码直接编译等待,客户但windows使用vs2013编译运行,以上版本也可以,自己可以下载调试玩一下。
  • 把服务端和客户端这两个程序分别保存为server.cclient.c。然后编译gcc server.c -o server,gcc client .c -o client。运行时先运行服务端,用命令./server,再运行客户端,用命令./client。 注意运行命令是“点 ...
  • Linux下NTP服务器客户端配置

    万次阅读 2012-10-13 16:06:26
    学习的时候也顺便复习了一下如何设置Linux的时间,现在拿出来大家分享 设置NTP服务器不难但是NTP本身是一个很复杂的协议. 这里只是简要地介绍一下实践方法 上次一样,下面的实验都在RHEL5上运行   1. ...
  • 上一篇博文讲了如何利用子进程实现多个客户端和服务器端进行通信, 那么,这一篇博客就来实现一下如何利用线程实现多个客户端和服务器端进行通信 代码实现: ser1.c #include <stdio.h> #include <...
  • 前言随着应用越来越大,应用更新耗时间流量的问题,就显得格外突出.目前原生app的更新分为两种:重新下载源文件,还有一种就是差分包更新,也叫增量更新....确保客户端是old_app 改变app大小生成新的new

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 150,407
精华内容 60,162
关键字:

linux运行服务器端和客户端

linux 订阅