【问题标题】:I have a TCP IP client server with ontly one cilent allowed to connect to sever. Do I need semaphores?我有一个 TCP IP 客户端服务器,只有一个客户端允许连接到服务器。我需要信号量吗?
【发布时间】:2013-04-19 15:09:32
【问题描述】:

我有一个 Java TCPIP cient/服务器,其中只允许一个客户端。 我正在考虑是否需要添加任何信号量保护。

我不认为,但我有一个循环等待套接字连接,一旦连接,我将从套接字读取。同时我也可以随时写出到socket。

服务器实现

Server{
  run(){
     while(true){
        openSocketConnection();  // wait unit client connected
        readSocecketMsg();
     }
  } 

  private void writeMsgToClient(message){
     write to socket(message)
  }
}

【问题讨论】:

  • 防护什么?
  • 我会说,您可以尝试使用和不使用信号量保护。
  • @ThorbjørnRavnAndersen:你说得对!
  • @Hydroid 不太好。并发错误很少出现,除非您明确重现触发它们的确切条件
  • 为什么只能连接一个客户端?如果您的服务器只接受一个连接,您不必担心其他任何人连接。我想我不明白你的问题/问题......

标签: java sockets semaphore


【解决方案1】:

你已经做到了。您一次处理一个客户。由于 TCP 积压队列,您无法在处理当前客户端时阻止其他客户端连接,但您可以为下一个客户端提供零服务,直到您完成此客户端,这正是您所做的已经在做。不需要信号量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2018-12-30
    • 2012-08-31
    • 1970-01-01
    • 2021-08-12
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多