Linux一对一通信(UDP)

原创 2018年04月17日 19:32:34

客户端:

#include<stdio.h>  
#include<unistd.h>  
#include<stdlib.h>  
#include<sys/socket.h>  
#include <sys/socket.h>
#include<string.h>  
#include <arpa/inet.h>

#define MAX_BUF_SIZE 1024  
#define PORT 8888  

int main()   
{  
   int sockfd, addrlen, n;  
   char buffer[MAX_BUF_SIZE];  
   struct sockaddr_in addr;  
   sockfd = socket(AF_INET, SOCK_DGRAM, 0);  
   if (sockfd < 0)  
   {  
      fprintf(stderr, "socket falied\n");  
      exit(EXIT_FAILURE);  
   }  
   addrlen = sizeof(struct sockaddr_in);  
   bzero(&addr, addrlen);  
   addr.sin_family = AF_INET;  
   addr.sin_port = htons(PORT);  
   addr.sin_addr.s_addr = htonl(INADDR_ANY);  

   puts("socket success");  
   while(1)  
   {  
       bzero(buffer, MAX_BUF_SIZE);  
       fgets(buffer, MAX_BUF_SIZE, stdin);  
       sendto(sockfd, buffer, strlen(buffer), 0, (struct sockaddr *)(&addr), addrlen);  
       printf("client send msg is %s\n", buffer);  
       n = recvfrom(sockfd, buffer, strlen(buffer), 0, (struct sockaddr *)(&addr), &addrlen);  
       fprintf(stdout, "clinet Receive message from server is %s\n", buffer);  
   }  
   close(sockfd);  
   exit(0);  
   return 0;  
}  

服务端:

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <errno.h>

#define PORT 8888  
#define MAX_MSG_SIZE 1024

int main()
{
       int sockfd, addrlen, n;  
       struct sockaddr_in addr;  
       char msg[MAX_MSG_SIZE];  
       sockfd = socket(AF_INET, SOCK_DGRAM, 0);  //数据报
       if (sockfd < 0)  
       {  
          fprintf(stderr, "socket failed\n");  
          exit(EXIT_FAILURE);  
       }  
       addrlen = sizeof(struct sockaddr_in);  
       bzero(&addr, addrlen);  //清空addr
       addr.sin_family = AF_INET;  
       addr.sin_addr.s_addr = htonl(INADDR_ANY);  
       addr.sin_port = htons(PORT);  
       if (bind(sockfd, (struct sockaddr*)(&addr), addrlen) < 0)  
       {  
          fprintf(stderr, "bind fail\n");  
          exit(EXIT_FAILURE);  
       }  
       puts("bind success");  
       while (1)  
       {  
          bzero(msg, MAX_MSG_SIZE);  //清空数组
          n = recvfrom(sockfd, msg, sizeof(msg), 0, (struct sockaddr *)(&addr), &addrlen);  
          fprintf(stdout, "Recevie message from client is %s\n", msg);  
          fgets(msg, MAX_MSG_SIZE,stdin);  
          printf("Server endpoint input message %s\n", msg);  
          sendto(sockfd, msg, n, 0,(struct sockaddr *)(&addr), addrlen);  
       }  
       close(sockfd);  
       exit(EXIT_SUCCESS);  
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LV_YONG/article/details/79979464

在Java applet中如何实现一个模式对话框?

在Java applet中实现模式对话框的关键就是在创建一个对话框的时候 要为该对话框指定一个正确的父窗口.因为Applet是Panel类的子类,不 可以作为对话框的父窗口,所以首先要获得applet...
  • wxyxl
  • wxyxl
  • 2001-05-05 01:29:00
  • 1376

udp一对一通信

public class ChatTest { public static void main(String[] args) { InetAddress name; ...
  • flying_fish_wj
  • flying_fish_wj
  • 2016-08-17 20:36:22
  • 158

QT关于UDP通讯设置

QT关于UDP通讯设置UDP(用户数据报协议)是一个轻量级的,不可靠的、面向数据报的,无连接的协议,用于可靠性不是非常重要的情况。UDP一般分为发送端和接收端。QUdpSocket类用来发送和接收UD...
  • qq_40388909
  • qq_40388909
  • 2018-02-05 22:29:28
  • 44

linux下用udp进行本地通信

Linux下有协议域af_unix专门用于本机跨进程通信,在af_unix协议域下通信地址由传统的ip:端口号变成一个特殊的文件。 并且在本地环境下udp不可能出现丢包情况,udp协议快速简单的特点...
  • yuhao199555
  • yuhao199555
  • 2017-02-21 14:22:24
  • 318

linux下udp的通信例子

UDP客户端在建立了插口后会直接用sendto函数发送数据,还隐含了一个操作, 那就是在发送数据之前,UDP会首先为该插口选择一个独立的UDP端口(在1024 -5000之间),将该插口置为已绑定...
  • imxiangzi
  • imxiangzi
  • 2012-08-20 11:54:08
  • 9854

UDP一对多通信

  • 2016年06月21日 16:39
  • 27KB
  • 下载

linux qt基于udp通信的小程序 接收端

  • 2012年03月26日 21:14
  • 15KB
  • 下载

linux下基于UDP协议的聊天室

  • 2014年11月02日 20:01
  • 3KB
  • 下载

QT学习之UDP通讯-----《UDP客户端编程方法总结》

> 总结如下: 1:首先在 .pro 文件中加入 TQ  +=network   2:  添加UDP库文件 #include...
  • nnxy409
  • nnxy409
  • 2017-01-26 20:05:14
  • 1277

Linux C——UDP通信服务器与客户端

UDP服务器代码如下: #include #include #include #include #include #include #include #include #includ...
  • Eleanor_12
  • Eleanor_12
  • 2016-11-11 11:33:45
  • 2291
收藏助手
不良信息举报
您举报文章:Linux一对一通信(UDP)
举报原因:
原因补充:

(最多只允许输入30个字)