在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      博客專欄

      EEPW首頁(yè) > 博客 > Linux網(wǎng)絡(luò)編程UDP:服務(wù)器與客戶端之間的相互發(fā)送/接收(一)

      Linux網(wǎng)絡(luò)編程UDP:服務(wù)器與客戶端之間的相互發(fā)送/接收(一)

      發(fā)布人:電子禪石 時(shí)間:2024-10-29 來(lái)源:工程師 發(fā)布文章
      #include <stdio.h>        
      #include <sys/socket.h>
      #include <sys/types.h>     
      #include <sys/socket.h>
      #include <arpa/inet.h>
      #include <string.h>
      
      #define MAX_SEN 	200
      #define MAX_REC		200
      #define SERADDR 	"192.168.1.11"  
      #define SERPORT 	8000
      
      int main(void)
      {
      	int c_fd = -1, num = 0;
      	char cli_senbuf[MAX_SEN] = "abcdefg";  
      	char cli_recbuf[MAX_REC];
      	
      	struct sockaddr_in sin = {0}; 
      	struct sockaddr_in cin = {0}; 
      	socklen_t addr_len;
      	
      	c_fd = socket(AF_INET, SOCK_DGRAM, 0);
      	if ( -1 == c_fd)
      	{
      		perror("socket");
      		return -1;
      	}
      	printf("c_fd = %d.\n", c_fd);
      
      	sin.sin_family = AF_INET;		
      	sin.sin_port = htons(SERPORT);	
      	inet_pton(AF_INET, SERADDR, &sin.sin_addr);
      
      	num = sendto(c_fd, cli_senbuf, strlen(cli_senbuf), 0, (const struct sockaddr *)&sin, sizeof(sin));  
      	printf("客戶端成功發(fā)送了%d個(gè)字符\n", num);	
      	printf("客戶端發(fā)送的內(nèi)容是:%s\n", cli_senbuf);
      
      	
      	num = recvfrom(c_fd, cli_recbuf, MAX_REC, 0, (struct sockaddr *)&cin, &addr_len);
      	printf("客戶端成功接收了%d個(gè)字節(jié)\n", num);
      	printf("客戶端接收的內(nèi)容是:%s\n", cli_recbuf);
      	
      	return 0;
      }

      server.c


      #include <stdio.h>
      #include <sys/socket.h>
      #include <sys/types.h>         
      #include <sys/socket.h>
      #include <arpa/inet.h>
      #include <string.h>
      
      
      #define MAX_SEN 	200
      #define MAX_REC		200
      #define SERPORT 	8000
      
      int main(void)
      {
      	int s_fd = -1, ret = -1;
      	char ser_senbuf[MAX_SEN] = "hello"; 
      	char cli_recbuf[MAX_REC]; 
      	
      	struct sockaddr_in ser_sin = {0};  
      	struct sockaddr_in ser_cin = {0};   
      	socklen_t addr_len;
          char ipbuf[INET_ADDRSTRLEN];
      	
      	s_fd = socket(AF_INET,SOCK_DGRAM,0);
      	if (s_fd == -1 )
      	{
      		perror("socket");
      		return -1;
      	}
      	printf("s_fd = %d.\n", s_fd);
      		
      	bzero(&ser_sin,sizeof(ser_sin)); 
      	ser_sin.sin_family = AF_INET;		
      	ser_sin.sin_addr.s_addr = INADDR_ANY;
      	ser_sin.sin_port = htons(SERPORT);	
      	ret = bind(s_fd, (const struct sockaddr *)&ser_sin, sizeof(ser_sin));  
      	if (ret < 0)
      	{
      		perror("bind");
      		return -1;
      	}
      	printf("bind success.\n");
      
          addr_len = sizeof(ser_cin);
          ret = recvfrom(s_fd, cli_recbuf, MAX_REC, 0, (struct sockaddr *)&ser_cin, &addr_len);
          printf("服務(wù)器成功接收了%d個(gè)字節(jié)\n", ret);
      	printf("服務(wù)器接收的內(nèi)容是:%s\n", cli_recbuf);
          
      	inet_ntop(AF_INET, &ser_cin.sin_addr, ipbuf,sizeof(ipbuf));
      	printf("ip地址是:%s\n", ipbuf);
      		
      	ret = sendto(s_fd, ser_senbuf, strlen(ser_senbuf), 0, (const struct sockaddr *)&ser_cin, addr_len); 
      	printf("服務(wù)器成功發(fā)送了%d個(gè)字符\n", ret);	
      	printf("服務(wù)器發(fā)送的內(nèi)容是:%s\n", ser_senbuf);
       
      	return 0;
      }


      *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



      關(guān)鍵詞: udp

      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉