其中定义了三个按钮,分别是建立连接,接收和发送。
c#中的tcp通信实质就是Socket通信。

        private void button1_Click(object sender, EventArgs e)
            tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPAddress ipaddress = IPAddress.Parse("192.168.0.101");
            EndPoint point = new IPEndPoint(ipaddress, 7788);
            tcpClient.Connect(point);//通过IP和端口号来定位一个所要连接的服务器端

建立连接过程也很简单:
新建一个socket对象(IPV4协议,数据流传输、TCP模式)。
设定目标IP,这里目标用的是本机的TCP助手。
设定目标端口,7788是本机TCP助手监听的端口。
调用connect函数连接。
如果网络一切正常,这时候就已经连接成功了。

接收功能即调用Receive函数就可以完成数据的接收。

        private void button2_Click(object sender, EventArgs e)
            byte[] data = new byte[1024];
            //传递一个byte数组,用于接收数据。length表示接收了多少字节的数据
            int length = tcpClient.Receive(data);
            string message = Encoding.UTF8.GetString(data, 0, length);//只将接收到的数据进行转化
            textBox1.Text += message;

发送功能同样调用send函数就可以了。

 private void button3_Click(object sender, EventArgs e)
            string message2 = textBox2.Text;//读取用户的输入
            //将字符串转化为字节数组,然后发送到服务器端
            tcpClient.Send(Encoding.UTF8.GetBytes(message2));

实际效果如图:
在这里插入图片描述
注意Receive函数如果没有数据到来,会一直阻塞,导致程序控件假死,所以一般接收功能都是使用一个单独的线程进行接收。

先做一个简单的tcpClient收发功能。先简单做一个界面。引入命名空间:using System.Net.Sockets;using System.Net;其中定义了三个按钮,分别是建立连接,接收和发送。c#中的tcp通信实质就是Socket通信。 private void button1_Click(object sender, EventArgs e) { tcpClient = new Socket(AddressFam 2.1.1 使用套接字发送接收数据 28 2.1.2 使用NetworkStream对象发送接收数据 30 2.1.3 TcpClientTcpListener类 31 2.1.4 解决TCP协议的无消息边界问题 33 2.2 利用同步TCP编写网络游戏 34 2.2.1 服务器端编程 34 2.2.2 客户端编程 49 2.3 异步TCP应用编程 66 2.3.1 EventWaitHandle类 67 2.3.2 AsyncCallback委托 69 2.3.3 BeginAcceptTcpClient方法和EndAcceptTcpClient方法 70 2.3.4 BeginConnect方法和EndConnect方法 70 2.3.5 发送数据 71 2.3.6 接收数据 72 2.4 异步TCP聊天程序 73 2.4.1 服务器端设计 73 2.4.2 客户端设计 79 2.5 习题2 83 第3章 UDP应用编程 84 3.1 UDP协议基础知识 84 3.2 UDP应用编程技术 84 3.2.1 UdpClient类 84 3.2.2 发送接收数据的方法 86 3.3 利用UDP协议进行广播和组播 90 3.3.1 通过Internet实现群发功能 90 3.3.2 在Internet上举行网络会议讨论 96 3.4 习题3 101 第4章 P2P应用编程 102 4.1 P2P基础知识 102 4.2 P2P应用举例 104 4.3 习题4 114 第5章 SMTP与POP3应用编程 115 5.1 通过应用程序发送电子邮件 115 5.1.1 SMTP协议 115 5.1.2 发送邮件 116 5.2 利用同步TCP接收电子邮件 120 5.2.1 POP3工作原理 121 5.2.2 邮件接收处理 123 5.3 习题5 127 第6章 网络数据加密与解密 128 6.1 对称加密 128 6.2 不对称加密 133 6.3 通过网络传递加密数据 136 6.4 Hash算法与数字签名 152 6.5 习题6 153 第7章 三维设计与多媒体编程 154 7.1 简单的3D设计入门 154 7.2 DirectX基础知识 160 7.2.1 左手坐标系与右手坐标系 160 7.2.2 设备 160 7.2.3 顶点与顶点缓冲 161 7.2.4 Mesh对象 162 7.2.5 法线 162 7.2.6 纹理与纹理映射 162 7.2.7 世界矩阵、投影矩阵与视图矩阵 162 7.2.8 背面剔除 164 7.3 Primitive 164 7.4 Mesh 171 7.5 灯光与材质 177 7.6 音频与视频 187 7.7 直接使用SoundPlayer类播放WAV音频文件 191 7.8 习题7 193 第8章 上机实验指导 194 8.1 实验一 简单网络聊天系统 194 8.2 实验二 网络呼叫应答提醒系统 195 8.3 实验三 文件数据加密与解密 199 2.TcpListener类 TcpListener类用来侦听来自TCP网络客户端的连接。可使用TcpClient或Socket来连接TcpListener。可使用IPEndPoint、本地IP地址及端口号或者仅使用端口号,来创建TcpListener。 TcpListen类的属性
国际标准化组织(ISO)在1985年研究的网络互连模型,定义了OSI(Open System Interconnect),即开放式系统互联。 也叫OSI参考模型,OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)。这个框架定义了理论的标准模型,也是通讯学习基础的必修内容。   实际网络中TCP/IP协议中使用“TCP/IP五层模型”,与其各层有各自的协议, 来保证能互联网中正常通讯。下面用表格简述了模型的对应关系。..
C# 中,可以使用 `TcpClient` 类来进行 TCP 客户端的同步操作。以下是一个简单的示例代码,演示了如何使用 `TcpClient` 进行连接、发送接收数据: ```csharp using System; using System.IO; using System.Net.Sockets; public class Program public static void Main() // 创建 TcpClient 对象并连接到服务器 TcpClient client = new TcpClient("127.0.0.1", 8080); // 获取网络流对象 NetworkStream stream = client.GetStream(); // 发送数据 string message = "Hello, server!"; byte[] data = System.Text.Encoding.ASCII.GetBytes(message); stream.Write(data, 0, data.Length); // 接收服务器响应 data = new byte[256]; using (MemoryStream memoryStream = new MemoryStream()) int bytesRead; bytesRead = stream.Read(data, 0, data.Length); memoryStream.Write(data, 0, bytesRead); } while (stream.DataAvailable); // 处理服务器响应 string response = System.Text.Encoding.ASCII.GetString(memoryStream.ToArray()); Console.WriteLine("Server response: " + response); // 关闭连接 client.Close(); catch (Exception ex) Console.WriteLine("Error: " + ex.Message); 上述代码连接到 IP 地址为 "127.0.0.1",端口号为 8080 的服务器。你可以根据自己的需要修改这些值。代码发送一条消息到服务器,并打印出服务器的响应。最后,代码关闭连接。 请注意,上述代码是同步执行的,即发送接收操作都是阻塞的,直到完成或发生错误。如果你需要异步操作,请考虑使用 `TcpClient` 提供的异步方法。