我正在尝试学习 Java,这只是我的第二天,所以如果这有点初级,我深表歉意。我正在创建一个聊天客户端,它连接到我之前创建的服务器(它是用 C 编写的)。客户端程序已设置为具有 outTextArea
、inTextArea
和 sendButton
(非常基本的东西,但仍然 - 获取基础知识向下)。我希望聊天客户端在程序打开时打开套接字,当前在 main
中打开(隐藏连接信息):
Socket sock = new Socket("theServer", 0000);
我知道程序连接正确,并保持打开状态 - 当 IP 连接到服务器时,服务器当前会打印出来,然后在连接关闭时会出现段错误。
问题是:当我单击 sendButton
时,我试图通过该套接字发送在 outTextArea
中键入的字符串:
public void send(String outbuffer) throws Exception {
sendButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
sendMessage sender = new sendMessage();
sender.send(outTextArea.getText());
}
});
sendMessage 类:
System.out.println(outbuffer);
PrintStream printer = new PrintStream(sock.getOutputStream());
printer.println(outbuffer);
在这里我意识到我无法通过 sock
发送,它是在 main
类中创建的。
我很好奇如何访问创建的套接字,是否有其他方法可以发送消息而无需每次都创建新连接。非常感谢任何建议,谢谢。
最佳答案
有两种基本方法 - 套接字可以是包含套接字和使用它的方法的类中的实例变量,或者调用者可以将套接字传递给该方法。在后一种情况下,除了现在的字符串之外,该方法还将有第二个参数。还有其他可能性,但其中一种应该最适合您的情况。
如果我也可以发表一个意见:对于仍在弄清楚变量范围和参数传递问题的人来说,套接字编程似乎有点先进。在尝试解决网络问题之前,您可以尝试更简单的方法来更好地了解基础知识。
关于java - 从单独的方法中引用套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16970760/