ÉϺ£´óѧ ¼ÆËã»úÍøÂç ʵÑ鱨¸æ

2026/4/23 12:26:36

ҳü private byte[] _receiveData = new byte[1024]; private string _username; private string _password; private bool _needPasswordl; private bool _passwordWrong; public TcpServerForm() {

InitializeComponent(); }

private void TcpReceiveForm_Load(object sender, EventArgs e) {

IPAddress[] addressList = Dns.GetHostAddresses(Dns.GetHostName()); foreach (IPAddress ip in addressList) {

if (ip.ToString().Length <= 15)

lbNativeIP.Items.Insert(0, ip.ToString()); }

btnDisconnect.Enabled = false; }

private void btnListen_Click(object sender, EventArgs e) {

_username = txtUserName.Text;

_password = txtPassword.Text; //ÉèÖÃÓû§ÃûÓëÃÜÂë

_server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//н¨Ð­ÒéΪtcpµÄsocket

_server.Bind(new IPEndPoint(IPAddress.Any, 8000));//¼àÌý¶Ë¿ÚΪ8000 _server.Listen(5);//¿ªÊ¼¼àÌý

_server.BeginAccept(new AsyncCallback(AcceptedConnection), _server);//Òì²½µ÷ÓÃ,¿ªÊ¼½ÓÊÕÁ¬½Ó

this.lblStatus.Text = \¿ªÊ¼¼àÌý...\;

9 / 22

ҳü btnListen.Enabled = false; txtUserName.Enabled = false; txtPassword.Enabled = false; _needPasswordl = true;

_passwordWrong = false;//´¦ÀíÂß¼­ }

private void btnDisconnect_Click(object sender, EventArgs e) {

_client.Close(); _needPasswordl = true;

_server.BeginAccept(new AsyncCallback(AcceptedConnection), _server); this.lblStatus.Text = \¿ªÊ¼¼àÌý...\; }

void AcceptedConnection(IAsyncResult iar) {

_client = ((Socket)iar.AsyncState).EndAccept(iar);//ÖÕÖ¹½ÓÊÕÁ¬½Ó

this.lblStatus.Text = \Á¬½Óµ½:\ + _client.RemoteEndPoint.ToString();//½âÎö¶Ô·½µØÖ·Óë¶Ë¿Ú byte[] sendMessage = Encoding.Default.GetBytes(DateTime.Now.TimeOfDay + \Çë·¢ËÍÓû§ÓëÃÜÂë\);//Ïò¿Í»§¶ËÌá³ö·¢ËÍÃÜÂëµÄÇëÇó

lbConnectLog.Items.Insert(0, \Á¬½Óµ½:\ + _client.RemoteEndPoint.ToString()); _client.BeginSend(sendMessage, 0, sendMessage.Length, SocketFlags.None, new AsyncCallback(SentData), _client);//Òì²½µ÷ÓÃ,ÏûÏ¢·¢ËÍÍê±ÏÖ´ÐÐSentData btnDisconnect.Enabled = true; }

void ReceivedData(IAsyncResult iar) {

_client = (Socket)iar.AsyncState; int recv = 0; try {

10 / 22

ҳü recv = _client.EndReceive(iar); } catch {

ProcessDisconnection(); }//½âÎöÏûÏ¢

if (recv == 0)//½âÎöʧ°Ü {

_client.Close();

this.lblStatus.Text = \µÈ´ýÁ¬½Ó...\;

_server.BeginAccept(new AsyncCallback(AcceptedConnection), _server); return; }

string receiveMessage = Encoding.Default.GetString(_receiveData, 0, recv); this.lbMessage.Items.Insert(0,receiveMessage);//½«ÏûÏ¢·ÅÈëÏûÏ¢Áбí byte[] feedbackMessage; if(_needPasswordl) {

string receiveUsername = receiveMessage.Substring(receiveMessage.LastIndexOf(\) + 1, receiveMessage.IndexOf(\) - (receiveMessage.LastIndexOf(\) + 1));

string receivePassword = receiveMessage.Substring(receiveMessage.IndexOf(\) + 1, receiveMessage.Length - (receiveMessage.IndexOf(\) + 1)); if(receiveUsername == _username && receivePassword == _password) {

_needPasswordl = false; _passwordWrong = false;

feedbackMessage = Encoding.Default.GetBytes(DateTime.Now.TimeOfDay + \ÑéÖ¤³É¹¦_\ + receiveMessage);

_client.BeginSend(feedbackMessage, 0, feedbackMessage.Length, SocketFlags.None, new AsyncCallback(SentData), _client);

11 / 22

ҳü return; } else {

this.lbConnectLog.Items.Insert(0, receiveUsername + \ + receivePassword + \Ñé֤ʧ°Ü\); feedbackMessage = Encoding.Default.GetBytes(DateTime.Now.TimeOfDay + \Ñé֤ʧ°Ü_\ + receiveMessage); _passwordWrong = true;

_client.BeginSend(feedbackMessage, 0, feedbackMessage.Length, SocketFlags.None, new AsyncCallback(SentData), _client); return; } }

feedbackMessage = Encoding.Default.GetBytes(DateTime.Now.TimeOfDay + \³É¹¦½ÓÊÕ\ + receiveMessage);

_client.BeginSend(feedbackMessage, 0, feedbackMessage.Length, SocketFlags.None, new AsyncCallback(SentData), _client); }

void SentData(IAsyncResult iar) {

_client = (Socket)iar.AsyncState; int sent = _client.EndSend(iar); if (_passwordWrong) {

lbConnectLog.Items.Insert(0, \Ö÷¶¯¶Ï¿ªÁ¬½Ó\ + _client.RemoteEndPoint.ToString()); _client.Close(); _needPasswordl = true;

_server.BeginAccept(new AsyncCallback(AcceptedConnection), _server);//ÖØÐ¿ªÊ¼½ÓÊÕеÄÁ¬½Ó

ProcessDisconnection();

12 / 22


ÉϺ£´óѧ ¼ÆËã»úÍøÂç ʵÑ鱨¸æ.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ
ËÑË÷¸ü¶à¹ØÓÚ£º ÉϺ£´óѧ ¼ÆËã»úÍøÂç ʵÑ鱨¸æ µÄÎĵµ
Ïà¹ØÍÆ¼ö
Ïà¹ØÔĶÁ
¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩

ÏÂÔØ±¾ÎĵµÐèÒªÖ§¸¶ 10 Ôª

Ö§¸¶·½Ê½£º

¿ªÍ¨VIP°üÔ»áÔ± ÌØ¼Û£º29Ôª/ÔÂ

×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºxuecool-com QQ£º370150219