udp程式設計套接字程式碼
server.c
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<arpa/inet.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> int main(int argc, char* argv[]) { if(argc!=3) { printf("Useage:[IP] [PORT]\n"); return 1; } int sock=socket(AF_INET,SOCK_DGRAM,0); if(sock<0) { perror("socket"); return 2; } struct sockaddr_in local; local.sin_family = AF_INET; local.sin_port = htons(atoi(argv[2])); local.sin_addr.s_addr = inet_addr(argv[1]); if(bind(sock,(struct sockaddr*)&local, sizeof(local))<0) { perror("bind"); return 3; } char buf[8192]; struct sockaddr_in client; while(1) { socklen_t len = sizeof(client); ssize_t s = recvfrom(sock ,buf,sizeof(buf)-1, 0, (struct sockaddr*)&client, &len); if(s>0) { buf[s]=0; printf("[%s:%d]: %s \n", inet_ntoa(client.sin_addr), ntohs(client.sin_port),buf); sendto(sock,buf, strlen(buf), 0, (struct sockaddr*)&client, len); } } return 0; }
client.c
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> int main(int argc, char* argv[]) { if(argc!=3) { printf("Useage:[IP] [PORT]\n"); return 1; } int sock=socket(AF_INET,SOCK_DGRAM,0); if(sock<0) { perror("socket"); return 2; } struct sockaddr_in server; server.sin_family = AF_INET; server.sin_port = htons(atoi(argv[2])); server.sin_addr.s_addr = inet_addr(argv[1]); char buf[8196]; struct sockaddr_in peer; socklen_t len = sizeof(peer); while(1) { printf("Please Enter Your words:"); fflush(stdout); ssize_t s = read(0, buf, sizeof(buf)-1); if(s>0) { buf[s-1]=0; sendto(sock, buf, strlen(buf), 0, (struct sockaddr*)&server, sizeof(server)); ssize_t _s = recvfrom(sock, buf, sizeof(buf)-1, 0, (struct sockaddr*)&peer, &len); if(_s>0) { buf[s-1]=0; printf("server echo:%s\n", buf); } } } return 0; }
Makefile
.PHONY:all
all:server client
server:server.c
gcc -o [email protected] $^
client:client.c
gcc -o [email protected] $^
.PHONY:clean
clean:
rm server client
相關推薦
udp程式設計套接字程式碼
server.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include<arpa/inet.h> #include<sys/types.h>
socket程式設計 套接字程式設計 (純理論,以後補一下實現程式碼)
基本概念 套接字——應用層和傳輸層之間,提供應用傳輸介面 Web/RPC/中介軟體——應用層之上的網路開發 應用程式設計介面API(application programming interface) 套接字介面(socket interface)簡稱套接字,
網路程式設計套接字、網路位元組序及用udp寫客戶端和服務端聊天程式
認識IP地址 IP協議有兩個版本:IPV4和IPV6。 IPV4:IPV4版本的IP地址是4位元組無符號整數。那麼就存在IP地址資源匱乏的時候,這時可以採用兩種方法: DHCP:ip地址動態分配(應用層協議); NAT: 地址替換; 但是這兩種方法只是暫時的有I
我的Python成長之路--Day31-基於TCP和UDP的套接字程式設計
在介紹這兩種套接字程式設計之前,我們需要掌握iso七層協議中傳輸層中的和TCP有關的知識點, 三次握手和四次揮手: 首先傳輸層的由來: 網路層的ip幫我們區分子網,乙太網層的mac幫我們找到主機,然後大家使用的都是應用程式,你的電腦上可能同時開啟QQ、暴風影音等多個應用程
Linux網路程式設計 tcp套接字程式碼
本次介紹一下TCP協議下的套接字程式碼,總體來看,tcp協議比udp協議更加安全可靠,無論是從使用者使用的角度還是從編寫程式碼的角度,你會發現與udp不同的是tcp在每次通訊前,伺服器端和客戶端都會進行一次連線,連線成功後,才可以進行相互間的通訊。 套接字
Linux__網路程式設計套接字(UDP/TCP)
重點知識: ·IP地址、埠號、網路位元組序的基本概念 ·socket api的基本用法 ·實現簡單的UDP客戶端/伺服器 ·實現簡單的TCP客戶端/伺服器(單鏈接版本,多程序版本,多執行緒版本)
走入計算機的第三十四天(基於tcp和udp的套接字)
recv 設置 內存 tcp list dup lis 不知道 狀態 一 TCP套接字 1 low版TCP套接字 服務器端 客戶端 2、改進版tcp套接字 服務端
python基於udp的套接字
enc client sock python 接受 upper imp 代碼例子 data 1.基於udp的套接字 (1)udp不會產生粘包現象 (2)udp是無鏈接的,先啟動哪一端都不會報錯。 (3)upd是無連接的,所以可以同時多個客戶端跟服務端通信。 2.代碼例子 服
網絡編程之基於UDP協議套接字
本質 系統內存 現象 服務 自身 png 收發消息 accept color 1.UDP協議介紹(數據報協議) UDP協議不同於TCP,通信時,它不需要事先建立雙向鏈接,並且不區分客戶端先啟動還是服務端前起,工作原理:基於udp協議傳輸的信息,協議會將數據自動加上自定義
python3全棧開發-補充UDP的套接字、操作系統、並發的理論基礎
共享 solaris 小時 如何實現 bfc 讀取數據 ram strong 網絡接口 一、基於UDP的套接字 udp套接字簡單示例 import socket ip_port=(‘1.1.1.1‘,8181) BUFSIZE=1024 udp_serve
python學習第34天之udp的套接字、套接字的多執行緒socketserver模組的使用、作業系統理論
一、udp的套接字 Udp協議又叫資料報協議, 特點:每次傳送資料自帶報頭,即使傳送為0也會自帶報頭,所以不會報錯;一端發一次資料。另一端也只能收一次資料 服務端: import socket server=socket.socket(socket.AF_INET,socket.SOCK_DG
socket程式設計 套接字程式設計
基本概念 套接字——應用層和傳輸層之間,提供應用傳輸介面 Web/RPC/中介軟體——應用層之上的網路開發 應用程式設計介面API(application programming interface) 套接字介面(socket interface)簡稱套接字,
計算機網路——網路程式設計套接字
IP協議有兩個版本,IPV4 和IPV6,但若每有特殊說明,預設都是指IPV4. IP地址是在IP協議中,用來標識網路中不同主機的地址。 我們光有IP地址就可以完成通訊了嘛?有了IP地址能夠把訊息傳送到對方的機器上,但還是需要有一個其他的標識來區分出,這個程式要給哪個程式進行解析。
網路程式設計套接字(Socket)
網路預備知識學習:https://blog.csdn.net/hansionz/article/details/85224786 網路程式設計套接字 一.IP地址和埠號 1.IP地址 2.埠號 2.1 什麼是埠號
linux基礎程式設計 套接字socket 完整的伺服器端多執行緒socket程式
此段程式來自我的一個專案中,稍微做了些修改,執行穩定,客戶端程式比較簡單所以未編寫,可以用socket除錯工具測試此段程式碼 費話不多說,直接上程式碼 #include<stdlib.h> #include<stdio.h> #include&
網路程式設計-套接字(scoket)
socket程式設計 socket這個詞可以表示很多概念: 在TCP/IP協議中,“IP地址+TCP或UDP埠號”唯一標識網路通訊中的一個程序,“IP地址+埠號”就稱為socket。 在TCP協
網路程式設計套接字
TCP套接字----------------------------------------------SERVER————————————————————————————-------------------------------------------------CLI
網路程式設計—套接字基礎 & 基本TCP套接字程式設計-基本套接字函式
套接字基礎 一個通用套接字地址結構sockaddr: struct sockaddr { unsigned short sa_family; //套接字的協議簇地址型別,AF_XX char sa_data[14];//儲存
網路程式設計套接字【socket】
在學習Linux系統程式設計的時候,程序間的通訊方式包括——管道、訊息佇列、共享記憶體、訊號量等方式。但是這些通訊方式都村子一定的缺陷——都是在同一個機器上的程序間的通訊。為了讓不同機器上的程序之間相互通訊,Linux網路程式設計便可解決。linux系統支援套接字介面,可以通
【Java TCP/IP Socket程式設計】----套接字----UDP Socket
目錄 簡介 UDP通訊 UDP通訊案例 UDP套接字注意點 簡介 UDP是面向無連線的協議,在資料傳輸時,資料的傳送端和接收端不建立邏輯上的連線。當一臺計算機向另外一臺計算機發送資料時,傳送端不會確認接收端是否存在,同樣接收端接收到資料時,也不會發送反饋