Java-连接被拒绝的套接字-使用IDE Netbeans

时间:2018-12-08 11:51:58

标签: java sockets netbeans

已解决 =我的服务器代码需要放置在正确的位置。在EventQueue.Invokeletter {}之外;


当我运行客户端并单击“登录”按钮时,客户端无法连接到服务器。
第一次使用它时,它可以正常工作,但是我的客户端无缘无故无法连接到服务器。
我该怎么做才能正确呢?

服务器代码

import random

def rollDie():
    return random.choice([1,2,3,4,5,6])

def roll_first():
    if random.choice([0,1]) == 0:
        return 'A'
    else:
        return 'B'   

def rollSim():
    while True:
        turn = roll_first()
        numTrials = 10
        numThrows = 10000
        totalThrows = numTrials*numThrows
        game_on = True
        winsA = 0
        winsB = 0
        while game_on:
            for n in range(numTrials):
                games = 0
                for i in range(numThrows):
                    throw = rollDie()
                    if turn == 'A':
                        if throw == 6:
                            winsA += 1
                            games += 1
                            break
                        else:
                            turn = 'B'
                    else:
                        if throw == 6:
                            winsB += 1
                            games += 1
                            break
                        else:
                            turn = 'A'
            return winsA/totalThrows

客户代码

public static void main(String args[]) {  
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                new mainmenu().setVisible(true);
                ServerSocket ss=new ServerSocket(1234);                       
                    Socket socket1=ss.accept();
            } catch (IOException ex) {
                Logger.getLogger(mainmenu.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    });
}

1 个答案:

答案 0 :(得分:1)

这里:

ServerSocket ss=new ServerSocket(1234); 
Socket socket1=ss.accept();

等待一个客户端连接。然后,您的run()方法处理该客户端...并结束!

如果您想让代码再次 等待,则需要在代码的那部分周围放置一个循环

换句话说:您编写的代码将打开服务器套接字,等待传入的连接,处理该连接,然后...消失。如果您希望随着时间的推移为一个以上的客户提供服务,则只要“服务器”程序启动并运行,就需要用一个循环来替换“淡出”部分,该循环一直在等待新的客户。