基於Socket的UDP和TCP程式設計介紹
{
int sock_fd,client_fd; /*sock_fd:監聽socket;client_fd:資料傳輸socket */
struct sockaddr_in ser_addr; /* 本機地址資訊 */
struct sockaddr_in cli_addr; /* 客戶端地址資訊 */
char msg[MAX_MSG_SIZE];/* 緩衝區*/
ser_sockfd=socket(AF_INET,SOCK_STREAM,0);/*建立連線的SOCKET */
if(ser_sockfd<0)
{/*建立失敗 */
fprintf
exit(1);
}
/* 初始化伺服器地址*/
addrlen=sizeof(struct sockaddr_in);
bzero(&ser_addr,addrlen);
ser_addr.sin_family=AF_INET;
ser_addr.sin_addr.s_addr=htonl(INADDR_ANY);
ser_addr.sin_port=htons(SERVER_PORT);
if(bind(ser_sockfd,
{ /*繫結失敗 */
fprintf(stderr,"Bind Error:%s\n",strerror(errno));
exit(1);
}
/*偵聽客戶端請求*/
if(listen(ser_sockfd,BACKLOG)<0)
{
fprintf(stderr,"Listen Error:%s\n",strerror(errno));
close(ser_sockfd)
exit(1);
}
while(1)
{/* 等待接收客戶連線請求*/
cli_sockfd=accept(ser_sockfd,(struct sockaddr*) & cli_addr,&addrlen);
if(cli_sockfd<=0)
{
fprintf(stderr,"Accept Error:%s\n",strerror(errno));
}
else
{/*開始服務*/
recv(cli_addr,msg,MAX_MSG_SIZE,0); /* 接受資料*/
printf("received a connection from %sn", inet_ntoa(cli_addr.sin_addr));
printf("%s\n",msg);/*在螢幕上打印出來 */
strcpy(msg,"hi,I am server!");
send(cli_addr,msg,sizeof(msg),0); /*傳送的資料*/
close(cli_addr);
}
}
close(ser_sockfd);
}
相關推薦
基於 Socket 的 UDP 和 TCP 程式設計介紹
一、概述 TCP(傳輸控制協議)和UDP(使用者資料報協議是網路體系結構TCP/IP模型中傳輸層一層中的兩個不同的通訊協議。 TCP:傳輸控制協議,一種面向連線的協議,給使用者程序提供可靠的全雙工的位元組流,TCP套介面是位元組流套介面(stream socket)
基於Socket的UDP和TCP程式設計介紹
main(){ int sock_fd,client_fd; /*sock_fd:監聽socket;client_fd:資料傳輸socket */ struct sockaddr_in ser_addr; /* 本機地址資訊 */ struct sockaddr_in cli_a
_151_Java_基於Socket的TCP程式設計
----------------- ------------------- -------------------- import java.io.IOException; import java.io.InputStream; import ja
RTSP請求詳解及RTP 基於UDP和TCP協議傳輸資料的對比
最近一段時間一直在研究rtsp和rtp,現在寫部落格總結一下,也是對知識的一種鞏固吧。 下面是我用VLC播放器獲取海康NVR視訊的截圖(此次獲取是基於TCP的): 下面來看一下針對每一條訊息的詳細截圖: 客戶端傳送的OPTION訊息: 伺服器對OPTION回覆的200
(JAVA)基於Socket的TCP和UDP程式設計
(JAVA)基於Socket的TCP和UDP程式設計 最近空閒下來了,順便學習了下Java的網路程式設計,例子都是來源網路,整理了下,先記錄下來,以便後用! 一. TCP 、UDP、Scoket TCP: Transmission Control Protocol U
基於nginx和tengine的tcp反向代理,負載均衡 安裝和配置
zip http 端口 arc -s pro 進入 iteye obj 先下載nginx_tcp_proxy_module模塊。 wget https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/mast
基於Labview和Python的TCP數據傳輸
cnblogs ip地址 停止 logs view 發送 數值 分享 框圖 1.昨天做了有關LabVIEW和Python的串口數據傳輸,今天就來試試兩者的TCP數據傳輸。 2.Python程序編程: (1)首先通輸入命令:sudo ifconfig,得到本機的IP地址,在程
OSI七層模型和TCP/IP五層模型、iproute家族命令、管理工具介紹
1、簡述osi七層模型和TCP/IP五層模型網路協議通常分不同層次進行開發,每一層分別負責不同的通行功能。 1.1 OSI七層模型OSI:Open System Internetconnection(開放系統互聯),由ISO國際標準化組織定義;目的是規範網路環境,實現軟硬體相容;自上而下共分為七層,分別為:應
基本的Socket程式設計-基於Swing和AWT的客戶端
import java.net.ServerSocket; import java.net.Socket; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.IOException; import
[文件和原始碼分享] 基於WIN32 API介面程式設計實現的百戰天蟲小遊戲
在遊戲編寫的過程中,我一直在思考我自己製作的遊戲的主旨是什麼,想來想去,結合“百戰天蟲”遊戲的特點,我想到了“戰爭”這個主旨。遊戲中陣營的相互廝殺不正如國家之間的戰爭嗎?於是,我希望通過這款遊戲反映我對戰爭的一些思考。在遊戲結束或者暫停的時候,沒有顯示勝利者,因為我覺得戰爭沒有贏家,而在螢幕上
[原始碼和報告分享]基於WIN32 API介面程式設計實現的2048遊戲
遊戲功能 l 倒計時 遊戲有一個 15分鐘 的倒計時,玩家需要在規定時間內完成遊戲(即合併出數字為2048的方塊) l 方塊出現規則 在遊戲中,方塊的出現完全隨機,僅出現在空方格中。當方塊出現時,方塊上的數字有
面向物件程式設計介紹,類和物件
想一想 請用程式描述如下事情: A同學報道登記資訊 B同學報道登記資訊 C同學報道登記資訊 A同學做自我介紹 B同學做自我介紹 C同學做自我介紹 stu_a = { “name”:“A”, “age”:21, “gender”:1, “hometown”:“河北” } stu_b = {
[文件和原始碼分享] 基於WIN32 API介面程式設計實現的Flappy Bird小遊戲
Flappy bird是一款卷軸類的躲避遊戲。設計中可用空格操控遊戲的開始和暫停,通過控制向上的方向使小鳥不斷向上飛,但是不能落到地面和上邊界也不能撞到障礙物,否則遊戲結束彈出“Game Over!”的視窗。遊戲可以通過堅持的時間控制障礙物移動的速度,從而加大遊戲難度。 障礙物
UDP和TCP介紹
1、TCP與UDP區別總結: 1、TCP面向連線(如打電話要先撥號建立連線);UDP是無連線的,即傳送資料之前不需要建立連線 2、TCP提供可靠的服務。也就是說,通過TCP連線傳送的資料,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付 Tcp通過校驗和,重
Spring中基於AspectJ的AOP切面程式設計介紹及實現
簡介: AOP Aspect Oriented Programing 面向切面程式設計 AOP採取==橫向抽取==機制,取代了傳統==縱向繼承==體系重複性程式碼(效能監視、事務管理、安全檢查、快取) Spring中的Aop是純Java來實現的,使用==動態代理==的方式增強程
[原始碼和文件分享]分別基於WIN32 API介面程式設計和Cocos2d-x實現的兩個版本FlappyBird遊戲
1 開發背景 遊戲程式設計涉及了學科中的各個方面,鑑於目的在於學習與進步,本遊戲《Flappy Bird 》採用了兩個不同的開發方式來開發本款遊戲,一類直接採用win32底層API來實現,另一類採用當前火熱的cocos2d-x遊戲引擎來開發本遊戲。 2 需求分析 2.1 資料分析 本
基於linux環境tcp網路程式設計(線上英英詞典)文件【2】
程式碼: client.c /************************************************************************* File Name: client.c Author: Young
可移植畫素圖格式 PPM,灰度圖格式 PGM,點陣圖格式 PBM 的介紹 -- 視訊和影象程式設計基礎之一
可移植畫素圖格式 PPM,灰度圖格式 PGM,點陣圖格式 PBM 的介紹 簡介 可移植畫素圖格式(PPM),可移植灰度圖格式(PGM)和可移植點陣圖格式(PBM)是便於跨平臺的影象格式。有時候也被統稱為 PNM 格式 檔案格式描述 這三種格式其實是一樣的描述方法,只
libevent和基於libevent的網路程式設計[轉]
【轉載地址】https://www.cnblogs.com/nearmeng/p/4043548.html 示例原始碼程式碼下載 (注) 編譯chat-server code時, 需要修改Makefile檔案中的LIBS = $(LIBEVENT)/libs/libevent.a -lrt
elasticsearch-query-tookit一款基於SQL查詢elasticsearch程式設計工具包,支援SQL解析生成DSL,支援JDBC驅動,支援和Spring、MyBatis整合
`elasticsearch-query-tookit`是一款基於SQL查詢elasticsearch程式設計工具包,支援SQL解析生成DSL,支援JDBC驅動,支援和Spring、MyBatis整合,提供Java程式設計介面可基於此工具包二次開發 只是重新造了個輪子,