1. 程式人生 > >UDP通訊client端和server端

UDP通訊client端和server端

client端:

#include <sys/types.h>
#include <sys/socket.h>
#include<pthread.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>


int main(int argc, char **argv)
{
    char buff[512];

    printf("This is a UDP client\n");
    struct sockaddr_in addr;
    int sock;

    if ( (sock=socket(AF_INET, SOCK_DGRAM, 0)) <0)
    {
        perror("socket");
        exit(1);
    }
    addr.sin_family = AF_INET;
    addr.sin_port = htons(3702);
    addr.sin_addr.s_addr = inet_addr("49.123.73.201");
    if (addr.sin_addr.s_addr == INADDR_NONE)
    {
        printf("Incorrect ip address!");
        close(sock);
        exit(1);
    }

    while (1)
    {
		/* 接受使用者輸入 */
		bzero(buff, 512);
		if (fgets(buff, 511, stdin) == (char *) EOF)//從鍵盤輸入內容
			exit(0);
		if( sendto(sock, buff, strlen(buff), 0, (struct sockaddr *)&addr, sizeof(addr)) < 0){
			perror("sendto");
			close(sock);
			break;
		}else{
			printf("clinet send success!\n");
		}

    }
    
    return 0;
}
server端
#include <sys/types.h>
#include <sys/socket.h>
#include<pthread.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    printf("Welcome! This is a UDP server, I can only received message from client and reply with same message\n");
    
    struct sockaddr_in addr;
    addr.sin_family = AF_INET;
    addr.sin_port = htons(3702);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);

    int sock;
    if ( (sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
    {
        perror("socket");
        exit(1);
    }
    if (bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0)
    {
        perror("bind");
        exit(1);
    }
    char buff[512];
    struct sockaddr_in clientAddr;
    int n;
    int len = sizeof(clientAddr);
    while (1)
    {
        n = recvfrom(sock, buff, 511, 0, (struct sockaddr*)&clientAddr, &len);
        if (n>0)
        {
            buff[n] = 0;
            printf("%s %u says: %s\n", inet_ntoa(clientAddr.sin_addr), ntohs(clientAddr.sin_port), buff);
            n = sendto(sock, buff, n, 0, (struct sockaddr *)&clientAddr, sizeof(clientAddr));
            if (n < 0)
            {
                perror("sendto");
                break;
            }
        }
        else
        {
            perror("recv");
            break;
        }
    }
    return 0;
}



相關推薦

【Java】udp 實現 clientserver通訊

客戶端  1.建立客戶端+埠  2.準備資料  3.打包(傳送的地點及埠)  4.傳送  5.釋放   服務端  1.建立服務端+埠  2.準備接受容器  3.封裝成包  4.接受資料  5.分析資料  6.釋放  client.java package UdpDe

UDP通訊clientserver

client端: #include <sys/types.h> #include <sys/socket.h> #include<pthread.h> #include <netinet/in.h> #include <

QUdpSocket-Qt使用Udp通訊實現服務客戶

array tle sig post 客戶端 種類型 可用 進行 += 版權聲明:若無來源註明,Techie亮博客文章均為原創。 轉載請以鏈接形式標明本文標題和地址: 本文標題:QUdpSocket-Qt使用Udp通訊實現服務端和客戶端 本文地址:http://t

linux網路程式設計之用socket實現簡單客戶服務通訊(基於UDP

1、sendto和recvfrom函式介紹 sendto(經socket傳送資料) 相關函式 send , sendmsg,recv , recvfrom , socket 表頭檔案 #include < sys/types.h >#includ

java使用UDP來進行客戶伺服器通訊的簡單例子

1:客戶端程式 package com.pb.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.Unk

Udp發送接收

exc ont res udp lose ams send import -a //UdpReceive.java /* 定義udp的接收端。 思路: 1.定義udpSocket服務。一般會監聽一個端口,事實上就是這個接收網絡應用程序定義一個數字標示。 2.定義一個數

QTcpSocket-Qt使用Tcp通訊實現服務客戶

超過 amp 方式 all trac tro article ada 內部 版權聲明:若無來源註明,Techie亮博客文章均為原創。 轉載請以鏈接形式標明本文標題和地址: 本文標題:QTcpSocket-Qt使用Tcp通訊實現服務端和客戶端 本文地址:http:/

Android實戰簡易教程-第六十六槍(server搭建serverJson數據交互)

視頻 pack tis sta listen let Coding read ide 學習Android有一段時間了。對server端有非常深的好奇,決定對serve

linux網絡編程之用socket實現簡單客戶服務的通信(基於UDP

服務端 msg ets lin fgets err n) stderr tcp 單客戶端和服務端的通信(基於UDP) 代碼 服務端代碼socket3.c #include<sys/types.h> #include<sys/socket.h>

Socket TCP 協議實現服務客戶的簡單通訊-結合線程池的使用

文章目錄 前言 當前模式的弊端 服務端程式碼 客戶端程式碼 執行結果 客戶端 服務端

python UDP客戶服務對話

‘’’ UDP客戶端 ‘’’ import socket #1,建立socker物件dgram SOCK_DGRAM—UDP s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #傳送資料 while True: a=input(“請輸入你

nodejs socket實現的服務客戶簡單通訊

                        本文例項講述了通

1.SDL2_net TCP伺服器客戶通訊

這幾天打算把以前做的遊戲嘗試加入區域網聯機,恰巧SDL提供了對應的庫,即SDL2_net。 1.安裝 我的系統是ubuntu,安裝相對簡單,下面一個命令即可: sudo apt install libsdl2-net-dev 等待安裝完成即可。 如果使用的是window,可以去官

Qt5中QWebEngineView的使用,讓桌面客戶web友好通訊

本文結構 1、 Qt5中web開發的基本配置,工程搭建 2、 載入HTML檔案 3、 Qt介面視窗呼叫HTML中的JavaScript函式(Qt呼叫js) 4、 Qt介面視窗獲取HTML中Js函式的返回值 5、 Web端訊息主動通知到Qt介面(js通知Qt) 6、完整原始碼路徑

Qt:Qt實現Winsock網路程式設計—TCP服務客戶通訊(多執行緒)

Qt實現Winsock網路程式設計—TCP服務端和客戶端通訊(多執行緒) 前言 感覺Winsock網路程式設計的api其實和Linux下網路程式設計的api非常像,其實和其他程式語言的網路程式設計都差不太多。博主用Qt實現的,當然不想用黑視窗唄,有介面可以看到,由於GUI程式設計

JAVA中Socket服務客戶網路通訊簡單案例

一. 簡單介紹下Socket的用途: 1.Java最初是作為網路程式語言出現的,其對網路提供了高度的支援,使得客戶端和伺服器的溝通變成了現實,而在網路程式設計中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相關的技術 2.IP地址+埠號組成了所

網路程式設計套接字、網路位元組序及用udp寫客戶服務聊天程式

認識IP地址 IP協議有兩個版本:IPV4和IPV6。 IPV4:IPV4版本的IP地址是4位元組無符號整數。那麼就存在IP地址資源匱乏的時候,這時可以採用兩種方法: DHCP:ip地址動態分配(應用層協議); NAT: 地址替換; 但是這兩種方法只是暫時的有I

C#程式設計 socket程式設計之udp伺服器客戶

基於Udp協議是無連線模式通訊,佔用資源少,響應速度快,延時低。至於可靠性,可通過應用層的控制來滿足。(不可靠連線) 使用Udp協議通訊需要具備以下幾個條件: (1).建立一個套接字(Socket) (2).繫結伺服器端IP地址及埠號--伺服器端 (3).通過SendTo()方法向指

Zabbix3.0 serveragent安裝

安裝前準備: 1.1 安裝依賴包: yum -y install wget net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pc

Socket通訊實現伺服器客戶對話

廣域網和區域網 介紹socket通訊前我們先介紹一下廣域網與區域網的概念。區域網簡稱LAN,是指在某一區域幾臺計算機組成的計算機組,區域網是封閉的,區域網經常採用共享通道,即共用同一條電纜。廣域網簡稱WAN,是一種跨越大的,地域性的地區性網路集合廣域網包含大大小