客户端套接字程序引发异常

本文关键字:异常 程序 套接字 客户端 | 更新日期: 2023-09-27 18:27:17

我使用以下链接开发了一个套接字客户端/服务器程序

服务器套接字代码:http://msdn.microsoft.com/en-us/library/fx6588te.aspx

客户端套接字代码:http://msdn.microsoft.com/en-us/library/bew39x2a.aspx

开发完成后,我为服务器程序创建了一个服务,并将其部署在windows8服务器上。当我尝试使用客户端从我的开发机器(Win7)连接服务器程序时,我得到了以下异常

System.Net.Sockets.SocketException:由于目标计算机主动拒绝,因此无法建立连接10.80.33.77:8000位于System.Net.Socket.Socket.EndConnect(IAsyncResult asyncResult)在EODClient.AsyncClient.ConnectCallback(IAsyncResult ar)

抛出异常的客户端代码

   private static void ConnectCallback(IAsyncResult ar) {
    try
    {
        Socket client = (Socket) ar.AsyncState;
        client.EndConnect(ar); //Throwing an Exception here
    } catch (Exception e)
    {
    }

我在同一台计算机上测试了客户端和服务器,但得到了相同的异常。

但在下面的场景中,上面的代码运行良好。

  1. 在调试模式下使用Visual Studio 2008启动服务,从Windows 8服务器启动客户端
  2. 在调试模式下使用Visual Studio 2008启动服务,从同一台开发机器启动客户端

提前感谢您的帮助。

客户端套接字程序引发异常

在Socket服务器代码中,我在Main方法中创建了线程。但是在将其部署到服务器之后,线程启动代码就再也不会被调用。

最后,我将线程代码移到了与下面类似的OnStart方法中,它运行得很好。

 protected override void OnStart(string[] args)
 {
    thread = new Thread(WorkerThreadFunc);
    thread.Name = "My Worker Thread";
    thread.IsBackground = true;
    thread.Start();
 }

下面的帖子帮助解决了这个问题:Windows服务持续运行

很抱歉没有复制代码的核心(问题)部分。代码是与调试器一起工作的,所以我从未怀疑过从Main函数调用的上述代码。