1、服务端建立监听,等待客户端连接

class Program
{
static void Main(string[] args)
{ TcpListener listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 8000);
Console.WriteLine("1.服务端建立监听");
listener.Start();
Console.WriteLine("等待客户端连接");
TcpClient tcpClient = listener.AcceptTcpClient();
Console.WriteLine("2.1客户端已经连接");
Console.WriteLine("2.2获取到客户端传过来报文流");
NetworkStream stream = tcpClient.GetStream();
Console.WriteLine("3.初始化一个字节数组");
byte[] data = new byte[1024];
Console.WriteLine("4.从流中读取内容到字节数组");
int length = stream.Read(data, 0, 1024);
Console.WriteLine("5.将字节数组中的内容解析为字符串");
string message = Encoding.UTF8.GetString(data, 0, length);
Console.WriteLine("6.打印");
Console.WriteLine(message);
Console.WriteLine("7.关闭流");
stream.Close();
Console.WriteLine("8.停止监听者");
listener.Stop();
Console.WriteLine("9.程序结束");
Console.ReadKey();
}
}

2.从主机连接得到客户端

class Program
{
static void Main(string[] args)
{
Console.WriteLine("0.声明一个客户端");
TcpClient tcpClient = new TcpClient("127.0.0.1", 8000);
Console.WriteLine("1.从客户端得到一个流");
            NetworkStream stream = tcpClient.GetStream();
Console.WriteLine("2.请输入要发送的内容");
string message = Console.ReadLine();
Console.WriteLine("3.将输入的字符串解析为字节数组");
byte[] data = Encoding.UTF8.GetBytes(message);
Console.WriteLine("4.将字节内容写入流");
stream.Write(data, 0, data.Length);
Console.WriteLine("5.关闭流");
            stream.Close();
Console.WriteLine("7.关闭客户端");
tcpClient.Close();
Console.WriteLine("8.程序结束");
Console.ReadKey();
}
}

C# TCP/IP通信,Socket通信例子的更多相关文章

  1. TCP/IP的Socket编程

    1. TCP/IP.UDP的基本概念 TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,他是一个工业标准的协议集, ...

  2. ios开发网络知识 TCP,IP,HTTP,SOCKET区别和联系

    TCP,IP,HTTP,SOCKET区别和联系 网络由下往上分为:        对应 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--     ...

  3. Linux内核 TCP/IP、Socket参数调优

    Linux内核 TCP/IP.Socket参数调优 2014-06-06  Harrison....   阅 9611  转 165 转藏到我的图书馆   微信分享:   Doc1: /proc/sy ...

  4. 网络基础之HTTP、TCP/IP、Socket

    一.HTTP相关 https://www.cnblogs.com/sunny-sl/p/6529830.html https://www.cnblogs.com/ranyonsue/p/5984001 ...

  5. TCP/IP、SOCKET、HTTP之间的联系与区别

    主要内容: 1.网络的七层协议 2.TCP/IP.SOCKET.HTTP简介 3.TCP连接.HTTP连接.Socket连接的区别 一.网络的七层协议 网络七层由下往上分别为物理层.数据链路层.网络层 ...

  6. 网络协议HTTP、TCP/IP、Socket

    网络协议HTTP.TCP/IP.Socket 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.  其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的 ...

  7. TCP/IP以及Socket聊天室带类库源码分享

    TCP/IP以及Socket聊天室带类库源码分享 最近遇到个设备,需要去和客户的软件做一个网络通信交互,一般的我们的上位机都是作为客户端来和设备通信的,这次要作为服务端来监听客户端,在这个背景下,我查 ...

  8. TCP/IP 和 Socket 的关系

    要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...

  9. TCP,IP,HTTP,SOCKET区别和联系

    物理层-- 数据链路层-- 传输层--                       TCP协议 会话层-- 我 们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如 果没有应用层,便 ...

  10. TCP/IP, HTTP, socket

    摘自:http://jingyan.baidu.com/article/08b6a591e07ecc14a80922f1.html http://goodcandle.cnblogs.com/arch ...

随机推荐

  1. 为什么推荐在 .NET 中使用 YAML 配置文件

    在现代应用开发中,配置管理是一个非常重要的部分.随着微服务.容器化和云原生架构的流行,使用简单.易读的配置格式变得尤为重要.在 .NET 开发中,虽然 JSON 是默认的配置文件格式,但 YAML(& ...

  2. Docker非root用户修改/etc/hosts文件

    本文会讲解在Docker容器环境下,非root用户如何编辑修改/etc/hosts文件. 1.背景和需求描述 环境:Docker 运行用户:非root用户,如普通用户1001 需求:应用运行在容器内, ...

  3. 在 .NET Core 中使用 ActionBlock 实现高效率的多步骤数据处理

    目录 一.引言 二.ActionBlock介绍 什么是 ActionBlock? ActionBlock 的特点 ActionBlock 的使用场景 ActionBlock 的基本用法 三.假设场景 ...

  4. .NET 中的线程安全数据结构

    目录 1. ConcurrentQueue 2. ConcurrentStack 3. ConcurrentBag 4. ConcurrentDictionary<TKey, TValue> ...

  5. 【杂谈】Kafka 消息偏移量:如何高效地定位和管理消息?

    前言 在 Kafka 中,消息偏移量是什么?是文件中的索引吗?又是如何通过偏移量快速定位消息的?本文将深入探讨这些问题,帮助你更好地理解 Kafka 的偏移量机制. Kafka 的偏移量是什么? Ka ...

  6. 关于Qt数据库相关开发的一些经验总结

    一.前言 近期花了两个多月时间,将数据库相关的代码重新封装成了各种轮子(这条路必须打通,打通以后,相关项目只需要引入这个组件pri即可),测试了从Qt4.7到Qt6.1的各种版本,测试了odbc.sq ...

  7. Qt编写安防视频监控系统32-onvif信息获取

    一.前言 上一篇文章写的是onvif设备搜索,搜到这些设备以后,第一件事情就是要对设备信息获取一下,比如获取视频流地址,配置套件信息.码流信息.分辨率大小等,这些信息的获取根据具体的需要去获取,也没有 ...

  8. .NET 响应式编程 System.Reactive 系列文章(一):基础概念

    .NET 响应式编程 System.Reactive 系列文章(一):基础概念 引言 在现代软件开发中,处理异步事件和数据流已经成为常见的需求,比如用户输入.网络请求.传感器数据等.这些数据流通常是无 ...

  9. 题解:AT_abc386_d [ABC386D] Diagonal Separation

    分析题面,发现题目求的是是否存在一个白点被 \((1, 1)\) 和任意一个黑点围成的矩形内. 先将所有黑点按 \(x\) 坐标排序. 枚举所有的白点. 找到所有横坐标不比该白点横坐标小的所有黑点的纵 ...

  10. selenium学习-常用方法

    id_#当前元素的ID  tag_name#获取元素标签名的属性  text#获取该元素的文本.  click()#单击(点击)元素  submit()#提交表单  clear()#清除一个文本输入元 ...