TcpListener和TcpClient类为一组,用作客户端和服务器
TcpListener类用来侦听来自TCP网络客户端的连接。可使用TcpClient或Socket来连接TcpListener
可使用IPEndPoint、本地IP地址及端口号或者仅使用端口号,来创建TcpListener。
TcpListener类的属性
TcpListener类的方法
服务器端代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
namespace ListenerForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(MyListen));
thread.Start();
}
//委托
protected delegate void ShowContentDelegate(string content);
private void MyListen()
{
IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); //实例化IP地址
TcpListener tcpListener = new TcpListener(ipAddress, 19521);
tcpListener.Start();
while(true)
{
TcpClient tcpClient = tcpListener.AcceptTcpClient(); //接收挂起的连接请求
NetworkStream stream = tcpClient.GetStream(); //用于接收数据
StreamReader sr = new StreamReader(stream); //初始化流
string result = sr.ReadToEnd(); //读取流
ShowContentDelegate myContent = new ShowContentDelegate(ShowContent); //绑定委托与方法
Invoke(myContent,result);
tcpClient.Close();
}
}
public void ShowContent(string content)
{
this.txtReceive.Text += content + "\r\n";
}
}
}
关于Invoke和Delegate的用法可以去看看其他的博客