Linux下的UDP通信
socket()函數
函數說明:建立新的socket通信
頭文件:
#include<sys/socket.h>
#include<sys/types.h>
函數定義:int socket(int domain,int type,int protocol)
domain:IP地址類型,常用的有 AF_INET 和 AF_INET6。AF_INET 表示 IPv4 地址,例如 127.0.0.1;AF_INET6 表示 IPv6 地址,例如 1030::C9B4:FF12:48AA:1A2B。
type:數據傳輸方式/套接字類型
protocol:傳輸協議,常用的有 IPPROTO_TCP 和 IPPTOTO_UDP,分別表示 TCP 傳輸協議和 UDP 傳輸協議。
返回值:函數調用成功,會返回一個標識這個套接字的文件描述符,失敗的時候返回-1。
bind()函數
函數說明:對套接字進行地址和端口的綁定
頭文件:
#include<sys/types.h>
#include<sys/socket.h>
函數定義:int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);
sockfd:socket()函數創建返回的文件描述符
my_addr:要綁定的地址信息,IP和端口
addrlen:地址長度
返回值:成功則返回0, 失敗返回-1
sendto()函數
函數說明:將數據由指定的socket 傳給對方主機
頭文件:
#include<sys/types.h>
#include<sys/socket.h>
函數定義:int sendto(int sockfd, const void * buf, int len, unsigned int flags, const struct sockaddr * addrto, int addrlen);
sockfd:socket()函數創建返回的文件描述符
buf:要傳送的數據地址
len:字符長度
addr:要綁定的地址信息,IP和端口
addrlen:地址長度
返回值:成功則返回實際傳送出去的字符數, 失敗返回-1
recvfrom()函數
函數說明:接收遠程主機經指定的socket 傳來的數據, 并把數據存到由參數buf 指向的內存空間
頭文件:
#include<sys/types.h>
#include<sys/socket.h>
函數定義:int recvfrom(int sockfd, void *buf, int len, unsigned int flags, struct sockaddr *addrfrom,int *addrlen);
sockfd:socket()函數創建返回的文件描述符
buf:要傳送的數據地址
len:字符長度
addr:要綁定的地址信息,IP和端口
addrlen:地址長度
返回值:成功則返回實際傳送出去的字符數, 失敗返回-1
inet_addr()函數
函數說明:將參數cp 所指的網絡地址字符串轉換成網絡所使用的二進制數字
頭文件:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
函數定義:unsigned long int inet_addr(const char *cp);
返回值:成功則返回對應的網絡二進制的數字, 失敗返回-1
htons()函數
函數說明: 將一個無符號短整型數值轉換為網絡字節序
頭文件:
#include <arpa/inet.h>
函數定義:uint16_t htons(uint16_t hostshort);
UDP客戶端
文件名:client.cpp
編譯命令:g++ client.cpp -o client
運行命令:./client 127.0.0.1
UDP服務端
文件名:server.cpp
編譯命令:g++ server.cpp -o server
運行命令:./server 127.0.0.1 4567
總結
以上是生活随笔為你收集整理的Linux下的UDP通信的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 椭圆性质92条及其证明
- 下一篇: linux 其他常用命令