1. 程式人生 > >基於Socket的UDP和TCP程式設計介紹

基於Socket的UDP和TCP程式設計介紹

main()
{
    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
(stderr,"socker Error:%s\n",strerror(errno));
        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,
(struct sockaddr*)&ser_addr,sizeof(struct sockaddr_in))<0)
    { /*繫結失敗 */
        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的UDPTCP程式設計介紹

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 基於UDPTCP協議傳輸資料的對比

最近一段時間一直在研究rtsp和rtp,現在寫部落格總結一下,也是對知識的一種鞏固吧。 下面是我用VLC播放器獲取海康NVR視訊的截圖(此次獲取是基於TCP的): 下面來看一下針對每一條訊息的詳細截圖: 客戶端傳送的OPTION訊息: 伺服器對OPTION回覆的200

(JAVA)基於Socket的TCPUDP程式設計

(JAVA)基於Socket的TCP和UDP程式設計 最近空閒下來了,順便學習了下Java的網路程式設計,例子都是來源網路,整理了下,先記錄下來,以便後用! 一. TCP 、UDP、Scoket TCP: Transmission Control Protocol U

基於nginxtengine的tcp反向代理,負載均衡 安裝配置

zip http 端口 arc -s pro 進入 iteye obj 先下載nginx_tcp_proxy_module模塊。 wget https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/mast

基於LabviewPython的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程式設計-基於SwingAWT的客戶端

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!”的視窗。遊戲可以通過堅持的時間控制障礙物移動的速度,從而加大遊戲難度。   障礙物

UDPTCP介紹

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程式設計介面可基於此工具包二次開發  只是重新造了個輪子,