⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udpclient.c

📁 Linux网络通信实例TCP&UDP 包括UDP和TCP简单的客户端和服务端两个程序 Linux下面轻松编译通过
💻 C
字号:
//==================================UDPClient.c===================================
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <error.h>
#define SERV_PORT 15811
#define MAXLINE 100
int main(int argc, char **argv)
{
     int sockfd,so_broadcast;
     struct sockaddr_in servaddr;
     if( argc!=2 )
           perror("usage:udpclient<IPaddress>");
     bzero(&servaddr, sizeof(servaddr));
     servaddr.sin_family = AF_INET;
     servaddr.sin_port = htons(SERV_PORT);
     char sendline[MAXLINE];
     char recvline[MAXLINE];
     sockfd = socket(AF_INET, SOCK_DGRAM, 0);
     //設置广播属性
     if (setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &so_broadcast, sizeof(so_broadcast)))
     {
           perror("setsockopt");
           return ;
     }
     if (sockfd == -1)
     {
           perror("socket");
           return ;
     }
     while(fgets(sendline, MAXLINE,stdin)!=NULL)
     {
           //指定发送的IP(可以如192.168.18.255--多播),以下两方法皆可
           inet_pton(AF_INET,argv[1],&servaddr.sin_addr);
           //servaddr.sin_addr.s_addr = inet_addr(argv[1]);
           sendto(sockfd,sendline,strlen(sendline),0,(struct sockaddr *)&servaddr,sizeof(servaddr));
           memset(recvline,0,sizeof(recvline));
           int n=recvfrom(sockfd,recvline,MAXLINE,0,NULL,NULL);
           if(n>0)
                 fputs(recvline,stdout);
     }
     exit(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -