.net网络编程(4)TcpListener、TcpClient
MSDN例子
服务器端
用TcpListener监听,接受TcpClient,以NetworkStream传输数据
public static void Main() {TcpListener server = null;try{// Set the TcpListener on port 13000.Int32 port = 13000;IPAddress localAddr = IPAddress.Parse("127.0.0.1");// TcpListener server = new TcpListener(port);server = new TcpListener(localAddr, port);// Start listening for client requests.server.Start();// Buffer for reading dataByte[] bytes = new Byte[256];String data = null;// Enter the listening loop.while (true){Console.Write("Waiting for a connection... ");// Perform a blocking call to accept requests.// You could also user server.AcceptSocket() here.TcpClient client = server.AcceptTcpClient();Console.WriteLine("Connected!");data = null;// Get a stream object for reading and writingNetworkStream stream = client.GetStream();int i;// Loop to receive all the data sent by the client.while ((i = stream.Read(bytes, 0, bytes.Length)) != 0){// Translate data bytes to a ASCII string.data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);Console.WriteLine("Received: {0}", data);// Process the data sent by the client.data = data.ToUpper();byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);// Send back a response.stream.Write(msg, 0, msg.Length);Console.WriteLine("Sent: {0}", data);}// Shutdown and end connectionclient.Close();}}catch (SocketException e){Console.WriteLine("SocketException: {0}", e);}finally{// Stop listening for new clients.server.Stop();}Console.WriteLine("\nHit enter to continue...");Console.Read(); }
客户端
static class Class1 {static void Connect(String server, String message){try{// Create a TcpClient.// Note, for this client to work you need to have a TcpServer // connected to the same address as specified by the server, port// combination.Int32 port = 13000;TcpClient client = new TcpClient(server, port);// Translate the passed message into ASCII and store it as a Byte array.Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);// Get a client stream for reading and writing.// Stream stream = client.GetStream();NetworkStream stream = client.GetStream();// Send the message to the connected TcpServer. stream.Write(data, 0, data.Length);Console.WriteLine("Sent: {0}", message);// Receive the TcpServer.response.// Buffer to store the response bytes.data = new Byte[256];// String to store the response ASCII representation.String responseData = String.Empty;// Read the first batch of the TcpServer response bytes.Int32 bytes = stream.Read(data, 0, data.Length);responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);Console.WriteLine("Received: {0}", responseData);// Close everything.stream.Close();client.Close();}catch (ArgumentNullException e){Console.WriteLine("ArgumentNullException: {0}", e);}catch (SocketException e){Console.WriteLine("SocketException: {0}", e);}Console.WriteLine("\n Press Enter to continue...");Console.Read();}public static void Main(){Connect("127.0.0.1", "hello");} }
转载于:https://www.cnblogs.com/Clingingboy/archive/2011/03/04/1970669.html
.net网络编程(4)TcpListener、TcpClient相关推荐
- [转]C#网络编程(异步传输字符串) - Part.3
本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part3.aspx 这篇文章我们将前进一大步,使用异步的方式 ...
- C#网络编程(基本概念和操作) - Part.1
引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍 ...
- (转)C#网络编程(订立协议和发送文件) - Part.4
源码下载:http://www.tracefact.net/SourceCode/Network-Part4.rar C#网络编程(订立协议和发送文件) - Part.4 文件传输 前面两篇文章所使用 ...
- .NET技术之美-网络编程
概要 .NET框架提供了system.net.*的一系列网络编程,其中system.net.socket主要提供低层TCP,UDP通信,system.Net高层下的通信HTTP,FTP,SMTP通信 ...
- C#网络编程(异步传输字符串) - Part.3[转自JimmyZhang博客]
源码下载:http://www.tracefact.net/SourceCode/Network-Part3.rar C#网络编程(异步传输字符串) - Part.3 这篇文章我们将前进一大步,使用异 ...
- C#网络编程(同步传输字符串) - Part.2
服务端客户端通信 在与服务端的连接建立以后,我们就可以通过此连接来发送和接收数据.端口与端口之间以流(Stream)的形式传输数据,因为几乎任何对象都可以保存到流中,所以实际上可以在客户端与服务端之间 ...
- (转)C#网络编程(基本概念和操作) - Part.1
源码下载:http://www.tracefact.net/SourceCode/Network-Part1-2.rar C#网络编程(基本概念和操作) - Part.1 引言 C#网络编程系列文章计 ...
- [C# 网络编程系列]专题十二:实现一个简单的FTP服务器
引言: 休息一个国庆节后好久没有更新文章了,主要是刚开始休息完心态还没有调整过来的, 现在差不多进入状态了, 所以继续和大家分享下网络编程的知识,在本专题中将和大家分享如何自己实现一个简单的FTP服务 ...
- [转]C#网络编程(同步传输字符串) - Part.2
本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part2.aspx 服务端客户端通信 在与服务端的连接建立以 ...
- C#网络编程(基本概念和操作) - Part.1[转自JimmyZhang博客]
引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍 ...
最新文章
- android 无埋点 简书,无埋点README
- FPGA 起脚nCEO/IO管教设置问题
- 2020年网易校招提前批JAVA岗笔试第一题
- react如何获取表单数据
- Arm 64位 汇编入栈和出栈
- wordpress黑镜2.0作品图片素材类网站模板
- spark RadixSort基数排序源码实现
- keychain 的学习
- 电脑用电量_为什么换了智能电表后,我家用电量一下子多了这么多呢?
- 知识驱动的主动式开放域对话系统 by 车万翔 2020/4/11
- matlab钉子链条,MatLab的Galton钉板问题训练报告 终极版
- 三星schi779 android版本更新,SCH-I779
- 机房环动监控系统作用
- 【二分图匹配】矩阵游戏
- c语言直接输出PDF,C语言格式化输出总结.pdf
- 网站服务器带宽2m怎么样,云服务器2m带宽够用吗
- 微信小程序——设置tabBar
- 前端UI交互 - 中后台系统 - 界面布局原则
- python读取dat文件经纬度_自动提取kml文件中的经纬度
- 分析加工贸易企业三帐难以平衡的根本原因
热门文章
- Tomcat源码下载地址
- 解决问题--修改weblogic密码后无法启动以及如何解密weblogic的3DES密文
- IntelliJ IDEA 查看类继承关系图,太强大了!
- RabbitMQ 线上事故!慌的一批,脑袋一片空白……
- Java 8 中的 Map 骚操作,学习下
- 为什么我们公司强制弃坑Fastjson了?主推...
- 互联网大牛们的电脑桌面,佩服!
- 【名额有限】腾讯技术工程-运维技术沙龙
- Android自定义View之刻度尺
- 数字孪生应用白皮书_工信部发布数字孪生应用白皮书:特斯联入选智慧城市建设标杆案例...