【实例简介】
【实例截图】
【核心代码】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 充电桩测试软件
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label10_Click(object sender, EventArgs e)
{
}
TcpListener listener;
delegate void SetTextCallBack(TextBox txt, string text);
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(textBox25.Text), Convert.ToInt32(textBox1.Text));
socket.Bind(endPoint);
socket.Listen(10);
Thread thread = new Thread(Listen);
thread.IsBackground = true;
thread.Start(socket);
}
public void SetControlTextInfo(string msg)
{
TextBox txtMsgInfo = new TextBox();
txtMsgInfo = textBox2;
foreach (Control item in this.tabControl1.Controls)
{
if(item is TabPage)
{
TabPage tcItem = (TabPage)item;
foreach (var tbItem in tcItem.Controls)
{
if (tbItem is TextBox)
{
TextBox txtItem = (TextBox)tbItem;
if (txtItem.Tag != null)
{
if (msg.Contains(txtItem.Tag.ToString())&& txtItem.Tag.ToString()!="")
{
txtMsgInfo = txtItem;
int startIndex = msg.IndexOf(txtItem.Tag.ToString()) 6;
msg = msg.Substring(startIndex, (msg.Length - 6) - startIndex);
StringBuilder sb = new StringBuilder();
string[] strInfo = msg.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
for (int i = strInfo.Length - 1; i >= 0; i--)
{
sb.Append(strInfo[i]);
}
msg = sb.ToString();
}
}
}
}
}
}
if (txtMsgInfo == textBox2)
{
SetText(textBox2, socketSend.RemoteEndPoint.ToString() ":" Environment.NewLine msg Environment.NewLine);//RemoteEndPoint获取socketSend终端的ip地址和端口号信息
// if(txtMsgInfo.Text.Contains(""))
}
else
{
SetText(txtMsgInfo, msg);
}
}
Socket socketSend;
Dictionary SocketDic = new Dictionary();//这个是为了 实现服务器端对多个客户端进行收发消息 名字对应连接
void Recive(object o)//监听等待进入的客户端
{
socketS