首先发送tcp数据到指定的ip和端口
实例1
TcpClient tcpClient = new TcpClient();
//txthost.Text是ip地址 txtport.Text是端口
tcpClient.Connect(IPAddress.Parse(txthost.Text), Int32.Parse(txtport.Text));
NetworkStream ns = tcpClient.GetStream();
//默认都是TRUE 可读
if (ns.CanWrite)
{
//这里的textBox3.Text是传输的文本内容
Byte[] sendBytes = Encoding.UTF8.GetBytes(textBox3.Text);
ns.Write(sendBytes, 0, sendBytes.Length);
}
//关闭流
ns.Close();
//关闭tcp连接
tcpClient.Close();
实例2
//替换成配置的站点和端口
TcpClient client = new TcpClient(DisposeClass.alhgPlatformUrl, Convert.ToInt32(DisposeClass.alhgPlatformPort));
NetworkStream stream = client.GetStream();
//reportStr表示传输的内容
byte[] datas = Encoding.UTF8.GetBytes(reportStr);
stream.Write(datas, 0, datas.Length);
接收窗体
public Form1()
{
InitializeComponent();
//实例化一个线程
Thread thread = new Thread(new ThreadStart(SocketListen));
//线程后台运行 不能造成页面卡死
thread.IsBackground = true;
thread.Start();
IPAddress ipAddress = IPAddress.Any; //IPAddress.Parse("172.16.102.11");
this.Text = ipAddress.ToString() + "正在监听...";
}
public void SocketListen()
{
//socket接收tcp传输
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//绑定的监听端口
listener.Bind(new IPEndPoint(IPAddress.Any, 9999));
//最大连接次数
listener.Listen(100);
//接收 一般项目启动后 就会到这一步 一直接受等待 直到有对应的tcp端口传输过来
Socket socket = listener.Accept();
Stream netStream = new NetworkStream(socket);
StreamReader reader = new StreamReader(netStream);
string result = reader.ReadToEnd();
Invoke(new UpdateDisplayDelegate(UpdateDisplay), new object[] { result });
socket.Close();
listener.Close();
}