using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace TCP_CLIENT
{
public partial class Form1 : Form
{
public Socket client;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
}
private void connect_Click(object sender, EventArgs e)
{
IPAddress ip = IPAddress.Parse(IPaddr.Text);
IPEndPoint point = new IPEndPoint(ip, int.Parse(IpPort.Text));
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
//连接到服务器
client.Connect(point);
ShowMsg("连接成功");
ShowMsg("服务器" + client.RemoteEndPoint.ToString());
ShowMsg("客户端:" + client.LocalEndPoint.ToString());
//连接成功后,就可以接收服务器发送的信息了
Thread th = new Thread(ReceiveMsg);
th.IsBackground = true;
th.Start();
connect.Enabled = false;
disconnect.Enabled = true;
}
catch (Exception ex)
{
ShowMsg(ex.Message);
}
}
//接收服务器的消息
void ReceiveMsg()
{
while (true)
{
try
{
byte[] buffer = new byte[100];
int n = client.Receive(buffer);
string s = Encoding.UTF8.GetString(buffer, 0, n);
ShowMsg(client.RemoteEndPoint.ToString() + ":" + s);
}
catch (Exception ex)
{
ShowMsg(ex.Message);
break;
}
}
}
void ShowMsg(string msg)
{
recieve.AppendText(msg + "\r\n");
}
private void butsend_Click(object sender, EventArgs e)
{
//客户端给服务器发消息
if (client != null)
{
try
{
byte[] buffer = Encoding.UTF8.GetBytes(send.Text);
client.Send(buffer);
}
catch (Exception ex)
{
ShowMsg(ex.Message);
}
}
}
private void disconnect_Click(object sender, EventArgs e)
{
connect.Enabled = true;
disconnect.Enabled = false;
client.Shutdown(SocketShutdown.Both);
client.Close();
}
}
}
https://download.csdn.net/download/weixin_40867780/16775169