页眉 return; }
_client.BeginReceive(_receiveData, 0, _receiveData.Length, SocketFlags.None, new AsyncCallback(ReceivedData), _client);//密码正确,开始接收消息 }
void ProcessDisconnection() {
this.lblStatus.Text = \已断开连接!重新监听...\; lbConnectLog.Items.Insert(0, \已经断开连接\); this.btnDisconnect.Enabled = false; }
private void txtUserName_TextChanged(object sender, EventArgs e) { }
private void txtPassword_TextChanged(object sender, EventArgs e) { }
private void lblUserName_Click(object sender, EventArgs e) { }
private void gnConnectInfo_Enter(object sender, EventArgs e) { }
private void lbMessage_SelectedIndexChanged(object sender, EventArgs e) { }
private void lbNativeIP_SelectedIndexChanged(object sender, EventArgs e) { }
private void lbConnectLog_SelectedIndexChanged(object sender, EventArgs e)
13 / 22
页眉 { } } }
TCP客户端:
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; namespace TCP客户端 {
public partial class TcpClientForm : Form {
Socket _client;
byte[] _receivedData = new byte[1024]; public TcpClientForm() {
InitializeComponent(); }
private void btnConnect_Click(object sender, EventArgs e) {
14 / 22
页眉 this.lblStatus.Text = \连接中...\;
_client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//建立一个协议为TCP的socket
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(this.txtIP.Text), 8000);//设置端口为8000 _client.BeginConnect(iep, new AsyncCallback(Connected), _client);//异步调用,开始连接服务端
this.btnConnect.Enabled = false; this.btnDisconnect.Enabled = true; }
private void btnDisconnect_Click(object sender, EventArgs e) {
_client.Close();
this.lblStatus.Text = \连接断开!\; this.btnConnect.Enabled = true; this.btnDisconnect.Enabled = false; }
private void btnSend_Click(object sender, EventArgs e) {
byte[] message = Encoding.Default.GetBytes(DateTime.Now.TimeOfDay + \ + this.txtMessage.Text);//将文本框里的东西整合成消息 txtMessage.Focus(); try {
_client.BeginSend(message, 0, message.Length, SocketFlags.None, new AsyncCallback(SentData), _client);//开始发送 txtMessage.Clear(); } catch {
ProcessDisconnection();
15 / 22
页眉 return; } }
void Connected(IAsyncResult iar) {
_client = (Socket)iar.AsyncState; try {
_client.EndConnect(iar);//关闭连接请求
this.lblStatus.Text = \连接到:\ + _client.RemoteEndPoint.ToString();
_client.BeginReceive(_receivedData, 0, _receivedData.Length, SocketFlags.None, new AsyncCallback(ReceivedData), _client);//异步调用,开始接收消息 } catch {
ProcessDisconnection(); return; } }
void ReceivedData(IAsyncResult iar) {
Socket remote = (Socket)iar.AsyncState; int recv; try {
recv = remote.EndReceive(iar); } catch {
ProcessDisconnection();
16 / 22
相关推荐: