1

我正在尝试使用套接字在客户端和服务器之间建立连接。我有一个图形用户界面。这是我的代码:

这是服务器的代码,它从 gui 的文本框中获取端口号,当单击开始按钮时,会创建一个套接字。

Thread thrAccept;
Socket server_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Socket n;

private void button_start_listening_Click(object sender, EventArgs e)
{
    richTextBox_server_activity_log.AppendText("Server started. Waiting for clients... \n");
    button_start_listening.Enabled = false;
    server_socket.Bind(new IPEndPoint(IPAddress.Any, Convert.ToInt32(textbox_port_no.Text)));

    server_socket.Listen(100);
    thrAccept = new Thread(new ThreadStart(Accept));
    thrAccept.Start();

}

private void Accept()
{
    n = server_socket.Accept();            
}

对于客户端,我使用两个文本框输入用户的 ip 和端口号,然后单击连接按钮,为了建立连接,我使用了这段代码:

c.Connect(ipText.Text, Convert.ToInt32(portText.Text)); //c is a socket

我的问题是,建立连接后,我想在服务器的 GUI 中打印类似“客户端已连接”的内容。但是我怎样才能让服务器知道客户端已经连接?

谢谢

4

1 回答 1

0

也许是这样的?

   private void Accept()
    {
        try {
            n = server_socket.Accept();
            richTextBox_server_activity_log.AppendText("Connection Established...");
        } catch (Exception ex) {
            richTextBox_server_activity_log.AppendText("Failed to Connect...");
        }
    }
于 2013-11-10T21:39:09.637 回答