您现在的位置是:主页 > news > 页面设计在哪里/网站内链优化
页面设计在哪里/网站内链优化
admin2025/5/7 13:21:16【news】
简介页面设计在哪里,网站内链优化,中山营销网站建设,模板置换编译软件:VS 2017 版 硬件平台:wind10 专业版 思路就是: 大家用过网络调试助手的都知道 ,TCP就是在同一局域网内,分为主从设备,需要设置ip地址和端口号。 UDP 只要一种,设置IP就好了 …
编译软件:VS 2017 版
硬件平台:wind10 专业版
思路就是: 大家用过网络调试助手的都知道 ,TCP就是在同一局域网内,分为主从设备,需要设置ip地址和端口号。
UDP 只要一种,设置IP就好了 !
作者:misslxy
来源:CSDN
话不多说,先看演示图:TCP Server
TCP Client 效果图 如下 :
TCP协议是一个基本的网络协议 ,上面两个IP 地址是自动获取的本机IP 。
下面我们来看看代码 :
TCP Server
public partial class Form1 : Form
{
private IPAddress serverIP;
private IPEndPoint serverFullAddr;
private Socket sock;
private Socket newSocket;
Thread myThread = null;
public Form1()
{
InitializeComponent();
//获取本机IP
tbxIP.Text = System.Net.Dns.Resolve(System.Net.Dns.GetHostName()).AddressList.GetValue(0).ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnStart_Click(object sender, EventArgs e) //开始
{
btnStart.Enabled = false;
btnStop.Enabled = true;
label3.Text = "建立成功";
myThread = new Thread(new ThreadStart(BeginListen));
myThread.Start();
}
******************************获取IP 地址与开始按钮*************************************************
private void BeginListen() //监听
{
serverIP = IPAddress.Parse(this.tbxIP.Text);
serverFullAddr = new IPEndPoint(serverIP, int.Parse(tbxPort.Text));//设置IP,端口
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sock.Bind(serverFullAddr);
sock.Listen(3);
newSocket = sock.Accept();
//sock.Connect(new IPEndPoint(serverIP, int.Parse(tbxPort.Text)));
byte[] message = new byte[1024]; //数据大小
string mess = "";
while (true)
{
try
{
//在接收数据之前 判断一下 SOCKET 连接是否断开
if (newSocket.Poll(10,SelectMode.SelectRead)) //如果没有数据过来就跳出循环
{
newSocket.Close();
sock.Close();
myThread.Abort();
btnStart.Enabled = true;
btnStop.Enabled = false;
//myThread.Join();
break;
}
int bytes = newSocket.Receive(message);
mess = Encoding.Default.GetString(message, 0, bytes); //转换成字符串
Invoke(new PrintRecvMssgDelegate(PrintRecvMssg), new object[] { mess });
}
catch (Exception ee)
{
Invoke(new PrintRecvMssgDelegate(PrintRecvMssg1), new object[] { "建立连接出错" + ee });
}
}
}
*************************************信号的监听****************************************************
private delegate void PrintRecvMssgDelegate(string s);
private void PrintRecvMssg(string info)
{
// RTXT.Text += string.Format("{0}\r\n", info);
RTXT.Text += string.Format("{0}", info);
}
private void PrintRecvMssg1(string info)
{
label3.Text = string.Format("{0}\r\n", info);
}
private void btnSend_Click(object sender, EventArgs e)
{
btnSend.Enabled = false;
newSocket.Send(Encoding.Default.GetBytes(this.STXT.Text));
btnSend.Enabled = true;
}
private void btnCLR_Click(object sender, EventArgs e)
{
RTXT.Text = "";
}
private void btnCLR2_Click(object sender, EventArgs e)
{
STXT.Text = "";
}
private void errgroup_Enter(object sender, EventArgs e)
{
}
private void CloseForm(object sender, FormClosedEventArgs e)
{
System.Diagnostics.Process.GetCurrentProcess().Kill(); //关闭窗口后关闭后台进程
}
/*********************************************数据的处理 *********************************************************************/
下面我们看一下 TCP Client 代码
public Form1()
{
InitializeComponent();
btnClose.Enabled = false;
tbxIP.Text = System.Net.Dns.Resolve(System.Net.Dns.GetHostName()).AddressList.GetValue(0).ToString(); //自动获取本机IP
}
private void btnConn_Click(object sender, EventArgs e)
{
serverIP = IPAddress.Parse(tbxIP.Text);
try
{
serverFullAddr = new IPEndPoint(serverIP, int.Parse(tbxPort.Text));//设置IP,端口
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sock.Connect(serverFullAddr);
btnConn.Enabled = false;
lblError.Text = "连接成功";
btnClose.Enabled = true;
myThread = new Thread(new ThreadStart(Listen));
myThread.Start();
}
catch (Exception ee)
{
lblError.Text = "连接失败"+ ee;
}
}
*********************************************获取IP 建立连接******************************************************
private void btnSend_Click(object sender, EventArgs e)
{
byte[] byteSend = System.Text.Encoding.Default.GetBytes(this.tbxMessage.Text);
try
{
sock.Send(byteSend);
}
catch (Exception ex)
{
lblError.Text = "发送错误"+ex;
}
}
private void Listen()
{
byte[] message = new byte[1024];
string mess = "";
while (true)
{
int bytes = sock.Receive(message);
mess = Encoding.Default.GetString(message, 0, bytes);
Invoke(new PrintRecvMssgDelegate(PrintRecvMssg), new object[] { mess });
}
}
private delegate void PrintRecvMssgDelegate(string s);
private void PrintRecvMssg(string info)
{
reciveTxt.Text += string.Format("{0}\r\n",info);
}
private void btnCLR2_Click(object sender, EventArgs e)
{
reciveTxt.Text = "";
}
private void btnCLR_Click(object sender, EventArgs e)
{
tbxMessage.Text = "";
}
private void CloseForm(object sender, FormClosedEventArgs e)
{
System.Diagnostics.Process.GetCurrentProcess().Kill(); //关闭窗口后关闭后台进程
}
*****************************************************发送 接收 监听 数据*******************************************************
如果大家觉得有帮助就添加关注 ,有写的不好之处多多谅解。
TCP通信源码 私信!!!!!!!!!!!!