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相关推荐

  1. [转]C#网络编程(异步传输字符串) - Part.3

    本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part3.aspx 这篇文章我们将前进一大步,使用异步的方式 ...

  2. C#网络编程(基本概念和操作) - Part.1

    引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍 ...

  3. (转)C#网络编程(订立协议和发送文件) - Part.4

    源码下载:http://www.tracefact.net/SourceCode/Network-Part4.rar C#网络编程(订立协议和发送文件) - Part.4 文件传输 前面两篇文章所使用 ...

  4. .NET技术之美-网络编程

    概要 .NET框架提供了system.net.*的一系列网络编程,其中system.net.socket主要提供低层TCP,UDP通信,system.Net高层下的通信HTTP,FTP,SMTP通信 ...

  5. C#网络编程(异步传输字符串) - Part.3[转自JimmyZhang博客]

    源码下载:http://www.tracefact.net/SourceCode/Network-Part3.rar C#网络编程(异步传输字符串) - Part.3 这篇文章我们将前进一大步,使用异 ...

  6. C#网络编程(同步传输字符串) - Part.2

    服务端客户端通信 在与服务端的连接建立以后,我们就可以通过此连接来发送和接收数据.端口与端口之间以流(Stream)的形式传输数据,因为几乎任何对象都可以保存到流中,所以实际上可以在客户端与服务端之间 ...

  7. (转)C#网络编程(基本概念和操作) - Part.1

    源码下载:http://www.tracefact.net/SourceCode/Network-Part1-2.rar C#网络编程(基本概念和操作) - Part.1 引言 C#网络编程系列文章计 ...

  8. [C# 网络编程系列]专题十二:实现一个简单的FTP服务器

    引言: 休息一个国庆节后好久没有更新文章了,主要是刚开始休息完心态还没有调整过来的, 现在差不多进入状态了, 所以继续和大家分享下网络编程的知识,在本专题中将和大家分享如何自己实现一个简单的FTP服务 ...

  9. [转]C#网络编程(同步传输字符串) - Part.2

    本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part2.aspx 服务端客户端通信 在与服务端的连接建立以 ...

  10. C#网络编程(基本概念和操作) - Part.1[转自JimmyZhang博客]

    引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍 ...

最新文章

  1. android 无埋点 简书,无埋点README
  2. FPGA 起脚nCEO/IO管教设置问题
  3. 2020年网易校招提前批JAVA岗笔试第一题
  4. react如何获取表单数据
  5. Arm 64位 汇编入栈和出栈
  6. wordpress黑镜2.0作品图片素材类网站模板
  7. spark RadixSort基数排序源码实现
  8. keychain 的学习
  9. 电脑用电量_为什么换了智能电表后,我家用电量一下子多了这么多呢?
  10. 知识驱动的主动式开放域对话系统 by 车万翔 2020/4/11
  11. matlab钉子链条,MatLab的Galton钉板问题训练报告 终极版
  12. 三星schi779 android版本更新,SCH-I779
  13. 机房环动监控系统作用
  14. 【二分图匹配】矩阵游戏
  15. c语言直接输出PDF,C语言格式化输出总结.pdf
  16. 网站服务器带宽2m怎么样,云服务器2m带宽够用吗
  17. 微信小程序——设置tabBar
  18. 前端UI交互 - 中后台系统 - 界面布局原则
  19. python读取dat文件经纬度_自动提取kml文件中的经纬度
  20. 分析加工贸易企业三帐难以平衡的根本原因

热门文章

  1. Tomcat源码下载地址
  2. 解决问题--修改weblogic密码后无法启动以及如何解密weblogic的3DES密文
  3. IntelliJ IDEA 查看类继承关系图,太强大了!
  4. RabbitMQ 线上事故!慌的一批,脑袋一片空白……
  5. Java 8 中的 Map 骚操作,学习下
  6. 为什么我们公司强制弃坑Fastjson了?主推...
  7. 互联网大牛们的电脑桌面,佩服!
  8. 【名额有限】腾讯技术工程-运维技术沙龙
  9. Android自定义View之刻度尺
  10. 数字孪生应用白皮书_工信部发布数字孪生应用白皮书:特斯联入选智慧城市建设标杆案例...