服务端:
private void PCQServiceForm_Load(object sender, EventArgs e)
{
TcpListener tcpListenerOut = new TcpListener(IPAddress.Any, Convert.ToInt32(txtPort.Text));
tcpListenerOut.Start();
Thread thread = new Thread(SendFileOutFunc);
thread.Start(tcpListenerOut);
thread.IsBackground = true;
}
public void SendFileOutFunc(object obj)
{
TcpListener tcpListener = obj as TcpListener;
while (true)
{
try
{
TcpClient tcpClient = tcpListener.AcceptTcpClient();
if (tcpClient.Connected)
{
#region 发送
NetworkStream ns = tcpClient.GetStream();
if (ns.CanWrite)
{
Byte[] sendBytes = Encoding.UTF8.GetBytes(txtSend.Text);
ns.Write(sendBytes, 0, sendBytes.Length);
}
ns.Close();
#endregion
#region 接收
//NetworkStream stream = tcpClient.GetStream();
//StreamReader sr = new StreamReader(stream);
//string result = sr.ReadToEnd();
//stream.Flush();
//stream.Close();
//tcpClient.Close();
//tcpListener.Stop();
#endregion
}
}
catch (Exception ex)
{
OperaterLog.WriteLog("SendFileFunc.ex:" + ex.Message);
}
}
}
客户端:
private void tmrReceive_Tick(object sender, EventArgs e)
{
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse(txtIP.Text), Int32.Parse(txtPort.Text));
TcpClient tcpClient = new TcpClient();
try
{
tcpClient.Connect(ipEndPoint);
if (tcpClient.Connected)
{
#region 发送
//NetworkStream ns = tcpClient.GetStream();
//if (ns.CanWrite)
//{
// Byte[] sendBytes = Encoding.UTF8.GetBytes(txtSend.Text);
// ns.Write(sendBytes, 0, sendBytes.Length);
//}
//ns.Close();
#endregion
NetworkStream stream = tcpClient.GetStream();
#region
StreamReader sr = new StreamReader(stream);
string result = sr.ReadToEnd();
txtReceive.Text += result + "\r\n";
stream.Flush();
stream.Close();
#endregion
}
#region 接收
#endregion
}
catch (Exception ex)
{
OperaterLog.WriteLog("AutoGradeOperaterForm.ReceiveFileFunc.ex:" + ex.Message);
}
}
这个示例展示了使用C#实现的TCP/IP通信。服务端启动监听,并在一个单独的线程中不断接收并发送文件。客户端连接到指定IP和端口,接收服务端发送的数据并显示在文本框中。
2829

被折叠的 条评论
为什么被折叠?



