国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

TCP、UDP客戶端

這篇具有很好參考價(jià)值的文章主要介紹了TCP、UDP客戶端。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

TCP客戶端

#include <mystdio.h>

#define CLI_PORT 6666
#define CLI_IP "192.168.124.210"

int main(int argc, const char *argv[])//argv[1] IP ?argv[2] 端口號
{
?? ?if(argc <3)
?? ?{
?? ??? ?printf("請?jiān)诿顐鲄⒍丝谔柡虸P地址\n");
?? ??? ?return -1;
?? ?}
?? ?//創(chuàng)建流式套接字文件
?? ?int cfd = socket(AF_INET,SOCK_STREAM,0);
?? ?if(cfd < 0)
?? ?{
?? ??? ?perror("socket");
?? ??? ?return -1;
?? ?}
?? ?printf("socket seccuss cfd = %d ?__%d__\n",cfd,__LINE__);
?? ?//允許端口號重復(fù)使用
?? ?int reuse = 1;
?? ?if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))<0)
?? ?{
?? ??? ?perror("setsockopt");
?? ??? ?return -1;
?? ?}
?? ?
?? ?//填充客戶端自身的地址信息,給bind函數(shù)綁定使用;
?? ?struct sockaddr_in cin;
?? ?cin.sin_family = AF_INET;
?? ?cin.sin_port ? = htons(CLI_PORT);
?? ?cin.sin_addr.s_addr ? = inet_addr(CLI_IP);
?? ?

?? ?//填充服務(wù)器的地址信息,給connet函數(shù)使用
?? ?struct sockaddr_in sin;
?? ?sin.sin_family = AF_INET;
?? ?sin.sin_port = htons(atoi(argv[1]));
?? ?sin.sin_addr.s_addr = inet_addr(argv[2]);
?? ?
?? ?//連接指定的服務(wù)器
?? ?if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))<0)
?? ?{
?? ??? ?perror("connect");
?? ??? ?return -1;
?? ?}
?? ?printf("connet seccuss __%d__\n",__LINE__);
?? ?
?? ?
?? ?char buf[128]="";
?? ?ssize_t res;
?? ?while(1)
?? ?{
?? ??? ?//從終端輸入數(shù)據(jù)
?? ??? ?printf("請輸入數(shù)據(jù)>>>\n");
?? ??? ?fgets(buf,sizeof(buf),stdin);
?? ??? ?buf[strlen(buf)-1] = '\0';
?? ??? ?//發(fā)送數(shù)據(jù)
?? ??? ?res = send(cfd,buf,sizeof(buf),0);
?? ??? ?if(res < 0)
?? ??? ?{
?? ??? ??? ?perror("send");
?? ??? ??? ?return -1;
?? ??? ?}
?? ?
?? ??? ?//接收
?? ??? ?bzero(buf,sizeof(buf));
?? ??? ?res = recv(cfd,buf,sizeof(buf),0);
?? ??? ?if(res < 0)
?? ??? ?{
?? ??? ??? ?perror("recv");
?? ??? ??? ?return -1;
?? ??? ?}
?? ??? ?else if(0 == res)
?? ??? ?{
?? ??? ??? ?printf("服務(wù)器下線 __%d__\n",__LINE__);
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?printf("%s __%d__",buf,__LINE__);
?? ??? ?
?? ?
?? ?}

?? ?close(cfd);

?? ?return 0;
}文章來源地址http://www.zghlxwxcb.cn/news/detail-857662.html

UDP客戶端

#include <mystdio.h>

#define PORT 8888
#define IP "192.168.124.210"

int main(int argc, const char *argv[])
{
?? ?int cfd = socket(AF_INET,SOCK_DGRAM,0);
?? ?if(cfd < 0)
?? ?{
?? ??? ?fprintf(stderr,"line:%d",__LINE__);
?? ??? ?perror("sockaddr");
?? ??? ?return -1;
?? ?}
?? ?printf("創(chuàng)建報(bào)式套接字成功 cfd=%d __%d__\n",cfd,__LINE__);
?? ?//允許端口被重復(fù)使用
?? ?int reuse = 1;
?? ?if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))<0)
?? ?{?? ?
?? ??? ?fprintf(stderr,"line:%d",__LINE__);
?? ??? ?perror("setsockopt");
?? ??? ?return -1;
?? ?}
?? ?//填充服務(wù)器的地址信息
?? ?struct sockaddr_in sin;
?? ?sin.sin_family ?? ??? ?= AF_INET;
?? ?sin.sin_port ?? ??? ?= htons(PORT);
?? ?sin.sin_addr.s_addr = inet_addr(IP);


?? ?char buf[128] = "";
?? ?struct sockaddr_in rcv;
?? ?socklen_t addrlen = sizeof(rcv);
?? ?while(1)
?? ?{
?? ??? ?bzero(buf,sizeof(buf));
?? ??? ?printf("請輸入信息>>>\n");
?? ??? ?fgets(buf,sizeof(buf),stdin);
?? ??? ?buf[strlen(buf)-1] = '\0';
?? ??? ?if(sendto(cfd,buf,sizeof(buf),0,(struct sockaddr*)&sin,sizeof(sin))<0)
?? ??? ?{
?? ??? ??? ?fprintf(stderr,"line:%d",__LINE__);
?? ??? ??? ?perror("sendto");
?? ??? ??? ?return -1;
?? ??? ?}
?? ??? ?if(strcmp(buf,"quit") == 0)
?? ??? ?{
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?printf("發(fā)送成功\n");

?? ??? ?bzero(buf,sizeof(buf));
?? ??? ?if(recvfrom(cfd,buf,sizeof(buf),0,(struct sockaddr*)&rcv,&addrlen)<0)
?? ??? ?{
?? ??? ??? ?fprintf(stderr,"line:%d",__LINE__);
?? ??? ??? ?perror("recvfrom");
?? ??? ??? ?return -1;
?? ??? ?}
?? ??? ?if(strcmp(buf,"quit") == 0)
?? ??? ?{
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?printf("[%s:%d] ?%s ?__%d__\n",\
?? ??? ??? ??? ?inet_ntoa(rcv.sin_addr),ntohs(rcv.sin_port),buf,__LINE__);
?? ??? ?}

?? ?close(cfd);
?? ?return 0;
}

機(jī)械臂

#include <mystdio.h>

#define CLI_PORT 6666
#define CLI_IP "192.168.124.210"

int main(int argc, const char *argv[])//argv[1] IP ?argv[2] 端口號
{
?? ?if(argc <3)
?? ?{
?? ??? ?printf("請?jiān)诿顐鲄⒍丝谔柡虸P地址\n");
?? ??? ?return -1;
?? ?}
?? ?//創(chuàng)建流式套接字文件
?? ?int cfd = socket(AF_INET,SOCK_STREAM,0);
?? ?if(cfd < 0)
?? ?{
?? ??? ?perror("socket");
?? ??? ?return -1;
?? ?}
?? ?printf("socket seccuss cfd = %d ?__%d__\n",cfd,__LINE__);
?? ?//允許端口號重復(fù)使用
?? ?int reuse = 1;
?? ?if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))<0)
?? ?{
?? ??? ?perror("setsockopt");
?? ??? ?return -1;
?? ?}

?? ?//填充服務(wù)器的地址信息,給connet函數(shù)使用
?? ?struct sockaddr_in sin;
?? ?sin.sin_family = AF_INET;
?? ?sin.sin_port = htons(atoi(argv[1]));
?? ?sin.sin_addr.s_addr = inet_addr(argv[2]);
?? ?
?? ?//連接指定的服務(wù)器
?? ?if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))<0)
?? ?{
?? ??? ?perror("connect");
?? ??? ?return -1;
?? ?}
?? ?printf("connet seccuss __%d__\n",__LINE__);
?? ?
?? ?int fd = open("/dev/input/event1",O_RDONLY);
?? ?if(fd<0)
?? ?{
?? ??? ?perror("open");
?? ??? ?return -1;
?? ?}
?? ??? ?
?? ?struct input_event ev;
?? ?
?? ?char buf[5]={0xff,0x02,0x00,30,0xff};
?? ?unsigned char str[5] = {0xff,0x02,0x01,20,0xff};
?? ?if(send(cfd,buf,sizeof(buf),0)< 0)
?? ?{
?? ??? ?perror("send");
?? ??? ?return -1;
?? ?}
?? ?if(send(cfd,str,sizeof(str),0)< 0)
?? ?{
?? ??? ?perror("send");
?? ??? ?return -1;
?? ?}

?? ?while(1)
?? ?{
?? ??? ?if(read(fd,&ev,sizeof(ev))<0)
?? ??? ?{
?? ??? ??? ?perror("read");
?? ??? ??? ?return -1;
?? ??? ?}

?? ??? ?switch(ev.code*ev.value)
?? ??? ?{
?? ??? ?case 17:
?? ??? ??? ?buf[3] += 5;
?? ??? ??? ?if(buf[3]>90)
?? ??? ??? ??? ?buf[3] = 90;
?? ??? ??? ?break;
?? ??? ?case 31:
?? ??? ??? ?buf[3] -= 5;
?? ??? ??? ?if(buf[3] < -90)
?? ??? ??? ??? ?buf[3] = -90;
?? ??? ??? ?break;
?? ??? ?case 30:
?? ??? ??? ?str[3] -= 5;
?? ??? ??? ?if(str[3] < 0)
?? ??? ??? ??? ?str[3] = 0;
?? ??? ??? ?break;
?? ??? ?case 32:
?? ??? ??? ?str[3] += 5;
?? ??? ??? ?if(str[3] >180 )
?? ??? ??? ??? ?str[3] = 180;
?? ??? ??? ?break;
?? ??? ?default:
?? ??? ??? ?continue;
?? ??? ?}
?? ??? ?
?? ??? ?if(send(cfd,buf,sizeof(buf),0)<0)
?? ??? ?{
?? ??? ??? ?perror("send");
?? ??? ??? ?return -1;
?? ??? ?}
?? ??? ?if(send(cfd,str,sizeof(str),0)<0)
?? ??? ?{
?? ??? ??? ?perror("send");
?? ??? ??? ?return -1;
?? ??? ?}

?? ?}
?? ?close(cfd);

?? ?return 0;
}

到了這里,關(guān)于TCP、UDP客戶端的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • socket的使用 | TCP/IP協(xié)議下服務(wù)器與客戶端之間傳送數(shù)據(jù)

    socket的使用 | TCP/IP協(xié)議下服務(wù)器與客戶端之間傳送數(shù)據(jù)

    謹(jǐn)以此篇,記錄TCP編程,方便日后查閱筆記 注意:用BufferedWriter write完后,一定要flush;否則字符不會(huì)進(jìn)入流中。去看源碼可知:真正將字符寫入的不是write(),而是flush()。 服務(wù)器端代碼: 客戶端代碼: 運(yùn)行后結(jié)果: 服務(wù)器端: 客戶端: 參考資料: https://www.bilibili.com/vid

    2024年02月09日
    瀏覽(39)
  • 《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于TCP的服務(wù)器端/客戶端

    《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于TCP的服務(wù)器端/客戶端

    目錄 1--TCP/IP協(xié)議棧 2--TCP服務(wù)器端默認(rèn)函數(shù)調(diào)用順序 3--TCP客戶端的默認(rèn)函數(shù)調(diào)用順序 4--Linux實(shí)現(xiàn)迭代回聲服務(wù)器端/客戶端 5--Windows實(shí)現(xiàn)迭代回聲服務(wù)器端/客戶端 6--TCP原理 7--Windows實(shí)現(xiàn)計(jì)算器服務(wù)器端/客戶端 ????????TCP/IP協(xié)議棧共分 4 層,可以理解為數(shù)據(jù)收發(fā)分成了 4 個(gè)層

    2024年02月10日
    瀏覽(30)
  • TCP IP網(wǎng)絡(luò)編程(五) 基于TCP的服務(wù)器端、客戶端 (補(bǔ)充)

    TCP IP網(wǎng)絡(luò)編程(五) 基于TCP的服務(wù)器端、客戶端 (補(bǔ)充)

    回聲客戶端出現(xiàn)的問題 在上一節(jié)基于TCP的服務(wù)器端、回聲客戶端中,存在問題: 如果數(shù)據(jù)太大,操作系統(tǒng)就有可能把數(shù)據(jù)分成多個(gè)數(shù)據(jù)包發(fā)送到客戶端,客戶端有可能在尚未收到全部數(shù)據(jù)包時(shí)就調(diào)用read函數(shù) 問題出在客戶端,而不是服務(wù)器端,先來對比一下客戶端與服務(wù)器端

    2024年02月09日
    瀏覽(37)
  • TCP、UDP客戶端

    TCP客戶端 #include mystdio.h #define CLI_PORT 6666 #define CLI_IP \\\"192.168.124.210\\\" int main(int argc, const char *argv[])//argv[1] IP ?argv[2] 端口號 { ?? ?if(argc 3) ?? ?{ ?? ??? ?printf(\\\"請?jiān)诿顐鲄⒍丝谔柡虸P地址n\\\"); ?? ??? ?return -1; ?? ?} ?? ?//創(chuàng)建流式套接字文件 ?? ?int cfd = socket(AF_INET,SOCK

    2024年04月25日
    瀏覽(16)
  • Socket網(wǎng)絡(luò)編程(TCP/IP)實(shí)現(xiàn)服務(wù)器/客戶端通信。

    Socket網(wǎng)絡(luò)編程(TCP/IP)實(shí)現(xiàn)服務(wù)器/客戶端通信。

    一.前言 回顧之前進(jìn)程間通信(無名管道,有名管道,消息隊(duì)列,共享內(nèi)存,信號,信號量),都是在同一主機(jī)由內(nèi)核來完成的通信。 那不同主機(jī)間該怎么通信呢? 可以使用Socket編程來實(shí)現(xiàn)。 Socket編程可以通過網(wǎng)絡(luò)來實(shí)現(xiàn)實(shí)現(xiàn)不同主機(jī)之間的通訊。 二.Socket編程的網(wǎng)絡(luò)模型如

    2024年02月08日
    瀏覽(37)
  • 【網(wǎng)絡(luò)編程】——基于TCP協(xié)議實(shí)現(xiàn)回顯服務(wù)器及客戶端

    【網(wǎng)絡(luò)編程】——基于TCP協(xié)議實(shí)現(xiàn)回顯服務(wù)器及客戶端

    個(gè)人主頁:兜里有顆棉花糖 歡迎 點(diǎn)贊?? 收藏? 留言? 加關(guān)注??本文由 兜里有顆棉花糖 原創(chuàng) 收錄于專欄【網(wǎng)絡(luò)編程】【Java系列】 本專欄旨在分享學(xué)習(xí)網(wǎng)絡(luò)編程的一點(diǎn)學(xué)習(xí)心得,歡迎大家在評論區(qū)交流討論?? TCP提供的API主要有兩個(gè)類 Socket ( 既會(huì)給服務(wù)器使用也會(huì)給客

    2024年02月03日
    瀏覽(44)
  • 【Java】網(wǎng)絡(luò)編程與Socket套接字、UDP編程和TCP編程實(shí)現(xiàn)客戶端和服務(wù)端通信

    【Java】網(wǎng)絡(luò)編程與Socket套接字、UDP編程和TCP編程實(shí)現(xiàn)客戶端和服務(wù)端通信

    為什么需要網(wǎng)絡(luò)編程? 現(xiàn)在網(wǎng)絡(luò)普及程序越來越高,網(wǎng)絡(luò)上保存著我們?nèi)粘I钪行枰母鞣N資源,使用程序通過網(wǎng)絡(luò)來獲取這些資源的過程就需要網(wǎng)絡(luò)編程來實(shí)現(xiàn)。 什么是網(wǎng)絡(luò)編程? 網(wǎng)絡(luò)編程,指網(wǎng)絡(luò)上的主機(jī),通過不同的進(jìn)程以程序的方式實(shí)現(xiàn)網(wǎng)絡(luò)通信(網(wǎng)絡(luò)數(shù)據(jù)傳輸)

    2024年02月17日
    瀏覽(91)
  • JavaEE & UDP簡易翻譯服務(wù)器 & 網(wǎng)絡(luò)編程示例2 & TCP回顯服務(wù)器,回顯客戶端

    JavaEE & UDP簡易翻譯服務(wù)器 & 網(wǎng)絡(luò)編程示例2 & TCP回顯服務(wù)器,回顯客戶端

    禁止白嫖 T T 點(diǎn)點(diǎn)贊唄 這個(gè)翻譯器主要是在上一章的回顯服務(wù)器和回顯客戶端上進(jìn)行修改 修改了計(jì)算響應(yīng)的過程, 即process方法 1.1 重寫方法 重寫方法是Java中的一種重要手段 指在一個(gè)類的子類里,對父類的一個(gè)方法進(jìn)行重新定義! 而父類的權(quán)限級別要大于等于子類~ 【除了

    2023年04月16日
    瀏覽(20)
  • 【無標(biāo)題】TCP,UDP,DNS以及配置網(wǎng)關(guān)IP地址和在ensp中,在客戶端用域名或IP地址獲取服務(wù)器的文件的實(shí)驗(yàn)

    【無標(biāo)題】TCP,UDP,DNS以及配置網(wǎng)關(guān)IP地址和在ensp中,在客戶端用域名或IP地址獲取服務(wù)器的文件的實(shí)驗(yàn)

    PDU:協(xié)議數(shù)據(jù)單元 應(yīng)用層:數(shù)據(jù)報(bào)文 傳輸層:數(shù)據(jù)段 網(wǎng)絡(luò)層:數(shù)據(jù)包 數(shù)據(jù)鏈路層:數(shù)據(jù)幀 物理層:比特流(電流) ? 應(yīng)用層的常見協(xié)議: HTTP----基于TCP協(xié)議 占據(jù)80端口號 超文本傳輸協(xié)議 HTTPS----基于TCP協(xié)議 占據(jù)443端口號 安全傳輸協(xié)議 SSH----基于TCP協(xié)議 占據(jù)22端口號 安全外

    2024年02月04日
    瀏覽(25)
  • FPGA實(shí)現(xiàn) TCP/IP 協(xié)議棧 客戶端 純VHDL代碼編寫 提供4套vivado工程源碼和技術(shù)支持

    FPGA實(shí)現(xiàn) TCP/IP 協(xié)議棧 客戶端 純VHDL代碼編寫 提供4套vivado工程源碼和技術(shù)支持

    FPGA實(shí)現(xiàn) TCP/IP 協(xié)議棧 客戶端 純VHDL代碼編寫 提供4套vivado工程源碼和技術(shù)支持 沒玩過TCP網(wǎng)絡(luò)通信都不好意思說自己玩兒過FPGA,這是CSDN某大佬說過的一句話,鄙人深信不疑。。。目前網(wǎng)上fpga實(shí)現(xiàn)udp協(xié)議的源碼滿天飛,我這里也有不少,但用FPGA純源碼實(shí)現(xiàn)TCP的項(xiàng)目卻很少,能上

    2024年02月04日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包