iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux怎么实现TCP双向通信
  • 553
分享到

Linux怎么实现TCP双向通信

2023-06-28 08:06:02 553人浏览 薄情痞子
摘要

这篇文章主要讲解了“linux怎么实现tcp双向通信”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么实现TCP双向通信”吧!双向通信一般指双向交替通信。双向交替通信又称为半双工通

这篇文章主要讲解了“linux怎么实现tcp双向通信”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么实现TCP双向通信”吧!

双向通信一般指双向交替通信。双向交替通信又称为半双工通信,即通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。

Linux怎么实现TCP双向通信

Linux TCP双向通信具体方法

Server.c

 #include #include #include #include #include  #include    #define IPADDRESS "127.0.0.1" #define PORT 8848 #define BUF_SIZE 1024    //发送消息 void* SendMes_Thread(void* Arg) {   puts("Thread created.");   //类型转换  int* Client_Socket=(int*)Arg;  char Mes_Buf[BUF_SIZE]={0};   while(1)  {   scanf("%s",Mes_Buf);   send(*Client_Socket,Mes_Buf,strlen(Mes_Buf)+1,0);   bzero(Mes_Buf,BUF_SIZE);  }   close(*Client_Socket);  return NULL; }  int main(int ArGC,char** Argv) {    //创建服务器套接字  int Server_Socket=socket(AF_INET,SOCK_STREAM,0);  if(-1==Server_Socket)  {   perror("Server socket creation failed!");   return -1;  }    //服务器网络信息  struct sockaddr_in Server_NetInfo={0};  Server_NetInfo.sin_family=AF_INET;  Server_NetInfo.sin_addr.s_addr=inet_addr(IPADDRESS);  Server_NetInfo.sin_port=htons(PORT);   //绑定IP和端口  if(-1==bind(Server_Socket,(const struct sockaddr*)&Server_NetInfo,sizeof(struct sockaddr)))  {   perror("Binding failure!");   return -1;  }    //监听服务器  if(-1==listen(Server_Socket,6))  {   perror("Linstening the to failure!");   return -1;  }    socklen_t Client_NetInfoSize=sizeof(struct sockaddr_in);  //客户端的网络信息  struct sockaddr_in Client_NetInfo={0};  //创建客户端套接字  int Client_Socket=-1;  //接受请求  Client_Socket=accept(Server_Socket,(struct sockaddr*)&Client_NetInfo,&Client_NetInfoSize);  if(-1==Client_Socket)  {   perror("Accepting fainure!");  }   //创建线程,用于发送消息  pthread_t Thread_ID=-1;  if(-1==pthread_create(&Thread_ID,NULL,SendMes_Thread,(void*)&Client_Socket))  {   puts("Create thread falied!");   return -1;  }   char Mes_Buf[BUF_SIZE]={0};  while(1)  {   if(0==recv(Client_Socket,Mes_Buf,BUF_SIZE,0))   {    puts("Client is desconnected!");    break;   }   printf("Client: %s\n",Mes_Buf);  }   close(Server_Socket);   return 0; }  123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107

Client.c

 #include #include #include #include #include  #include   #define IPADDRESS "127.0.0.1" #define PORT 8848 #define BUF_SIZE 1024    void* RecvMes_Thread(void* Arg) {    int* Client_Socket=(int*)Arg;   char Mes_Buf[BUF_SIZE]={0};  while(1)  {   if(0==recv(*Client_Socket,Mes_Buf,BUF_SIZE,0))   {    perror("Server is disconnected!");    break;   }   printf("Server: %s\n",Mes_Buf);  }   close(*Client_Socket);  return NULL; }   int main(int Argc,char** Argv) {    //创建客户端套接字  int Client_Socket=socket(AF_INET,SOCK_STREAM,0);  if(-1==Client_Socket)  {   perror("Client socket creation failed!");   return -1;  }  printf("Client_Socket==%d\n",Client_Socket);    //设置服务器网络信息  struct sockaddr_in Server_NetInfo={0};  Server_NetInfo.sin_family=AF_INET;  Server_NetInfo.sin_addr.s_addr=inet_addr(IPADDRESS);  Server_NetInfo.sin_port=htons(PORT);   //连接服务器  if(-1==connect(Client_Socket,(const struct sockaddr*)&Server_NetInfo,sizeof(struct sockaddr_in)))  {   perror("Connecting failure!");   return -1;  }   pthread_t Thread_ID=-1;  if(0==pthread_create(&Thread_ID,NULL,RecvMes_Thread,(void*)&Client_Socket))  {   puts("Create thread failed!");  }   char Mes_Buf[BUF_SIZE]={0};   while(1)  {   scanf("%s",Mes_Buf);   if(-1==send(Client_Socket,Mes_Buf,strlen(Mes_Buf)+1,0))   {    perror("Sending failure!");    break;   }   bzero(Mes_Buf,BUF_SIZE);  }   close (Client_Socket);   return 0; }

感谢各位的阅读,以上就是“Linux怎么实现TCP双向通信”的内容了,经过本文的学习后,相信大家对Linux怎么实现TCP双向通信这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Linux怎么实现TCP双向通信

本文链接: https://www.lsjlt.com/news/318043.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux怎么实现TCP双向通信
    这篇文章主要讲解了“Linux怎么实现TCP双向通信”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么实现TCP双向通信”吧!双向通信一般指双向交替通信。双向交替通信又称为半双工通...
    99+
    2023-06-28
  • WCF实现双向通信
    请求过程中的回调 这是一种比较典型的双工消息交换模式的表现形式,客户端在进行服务调用的时候,附加上一个回调对象;服务在对处理该处理中,通过客户端附加的回调对象(实际上是调用回调服务的...
    99+
    2022-11-13
  • WCF如何实现双向通信
    这篇文章主要介绍“WCF如何实现双向通信”,在日常操作中,相信很多人在WCF如何实现双向通信问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF如何实现双向通信”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-30
  • Android中怎么利用socketpair实现双向通信
    Android中怎么利用socketpair实现双向通信,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。进程:负责读取和分发事件2、应用程序:负责处理输入事件上面这两个进程会...
    99+
    2023-05-30
    socketpair android
  • Python怎么实现UDP与TCP通信
    这篇文章主要介绍了Python怎么实现UDP与TCP通信的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现UDP与TCP通信文章都会有所收获,下面我们一起来看看吧。1. UDPUDP是一种无连接...
    99+
    2023-07-05
  • Android Messenger实现进程间双向通信
    简介 Messenger是安卓进程间通信 (IPC) 最为简单的方式,可以实现进程间双向通信。详见官网介绍 代码实现 服务端应用实现 MessengerService接收客户端发送的...
    99+
    2022-11-12
  • 使用Messenger实现Service的双向通信
    Android体系架构中有一个解决方案:利用Android Messenger实现Service进程间双向通信。 MainActivity 类: package com.exam...
    99+
    2022-11-12
  • Python实现Socket通信建立TCP反向连接
    目录前言远程控制脚本编写脚本优化getopt ()完整代码前言 本文将记录学习基于 Socket 通信机制建立 TCP 反向连接,借助 Python 脚本实现主机远程控制的目的。 我们在传输数据时,可以只使用(传输层...
    99+
    2022-06-02
    Python 反向TCP Python TCP反向连接
  • Java项目中怎么实现TCP通信
    Java项目中怎么实现TCP通信?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Socket简介:Socket称为“套接字”,描述IP地址和端口。在Internet上的主机一...
    99+
    2023-05-31
    java ava tcp通信
  • C语言中怎么实现TCP通信
    C语言中怎么实现TCP通信,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。TCP协议TCP协议:是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定...
    99+
    2023-06-03
  • Node与Python双向通信的实现方法
    这篇文章主要介绍“Node与Python双向通信的实现方法”,在日常操作中,相信很多人在Node与Python双向通信的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node与Python双向通信的实...
    99+
    2023-06-20
  • Node与Python 双向通信的实现代码
    目录进程通信进程双向通信存在问题总结第三方数据供应商把数据和Python封装到一起,只能通过调用 Python方法来实现数据查询,如果可以通过Node 简单封装下实现 Python 方法调用可以快速上线并节省开发成本...
    99+
    2022-06-02
    Node Python双向通信 Node Python 通信
  • 如何在golang中实现WebSocket的双向通信
    如何在 Golang 中实现 WebSocket 的双向通信WebSockets 是一种在客户端和服务器之间建立持久化连接的通信协议,它允许双向通信,而且在实时性和效率方面表现出色。在 Golang 中,我们可以使用标准库中的 net/ht...
    99+
    2023-12-18
    Golang websocket 双向通信
  • Linux内核中双向链表怎么实现
    这篇文章主要介绍了Linux内核中双向链表怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux内核中双向链表怎么实现文章都会有所收获,下面我们一起来看看吧。首先让我们看一下在 include/lin...
    99+
    2023-06-28
  • MYSQL INNODB中通用双向链表怎么实现
    这篇文章给大家分享的是有关MYSQL INNODB中通用双向链表怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。源码在Ut0lst.h中注意:这里我将链表中的实际的串联的数...
    99+
    2022-10-18
  • websocket结合node.js实现双向通信的示例代码
    首先我们需要了解,什么是websocket,它的作用和优势是什么,为什么要用它。 什么是websocket websocket是基于TCP的一种双向通信协议。在此之前,一直是采用轮询...
    99+
    2023-02-10
    websocket node.js双向通信 node.js双向通信
  • Vue3父子组件间通信和组件间双向绑定怎么实现
    本篇内容主要讲解“Vue3父子组件间通信和组件间双向绑定怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3父子组件间通信和组件间双向绑定怎么实现”吧!假如确要修改,可以使用下面说的方...
    99+
    2023-07-06
  • linux shell 脚本实现tcp/upd协议通讯(重定向应用)
    前几天发了重定向以及管道相关使用方法,今天这里发些很有趣的例子。通过重定向实现基于tcp/udp协议的软件通讯。 linux 设备里面有个比较特殊的文件: /dev/[tcp|upd]/host/port ...
    99+
    2022-06-04
    脚本 重定向 协议
  • Android 通过Messager与Service实现进程间双向通信案例详解
    目录Messenger使用步骤Service代码客户端代码分析结果注意事项Android中的Service和其调用者既可以在同一个App中,也可以在不同的App。如果Service在...
    99+
    2022-11-12
  • Vue中不通过v-model怎么实现双向绑定
    本文小编为大家详细介绍“Vue中不通过v-model怎么实现双向绑定”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中不通过v-model怎么实现双向绑定”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。先来看...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作