我试图用没有gui的服务器连接带有gui的客户端。连接已完成,但我看不到这两个应用程序之间的任何消息。(我应该在客户端中找到SERVER
HERE,在服务器中找到CLIENT HERE)
客户端连接代码:
@Override
public void ClientRunning(){
try {
connectToServer();
setStreams();
ClientRun();
}catch(EOFException oefException){
showMessage("\n Client terminated the connection\n");
}catch(IOException ioException){
ioException.printStackTrace();
}finally{
close();
}
}
public void connectToServer() throws IOException{
showMessage("Attempting Connection... \n");
connection = new Socket(InetAddress.getByName(serverIP),6789);
showMessage("Connected to: "+ connection.getInetAddress().getHostName());
}
public void setStreams() throws IOException{
output = new PrintWriter(connection.getOutputStream(),true);
output.flush();
input= new BufferedReader(new InputStreamReader(connection.getInputStream()));
showMessage("\n Streams are now set. \n");
}
public void close(){
showMessage("\n closing...");
try{
output.close();
input.close();
connection.close();
}catch(IOException ioException){
ioException.printStackTrace();
}
}
public void showMessage(final String text){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
cwindow.append(text);
}
});
}
public void sendMessage(String message){
output.write("CLIENT - "+message);
output.flush();
showMessage("\nCLIENT - "+message);
}
private void ClientRun() throws IOException{
String message="CLIENT HERE!";
sendMessage(message);
do{
try{
message=input.readLine();
showMessage("\n"+message);
}catch(EOFException eofException){
showMessage("\n Server ended the connection!");
}
}while(message!="EXIT");
}
(输入和输出在此客户端类扩展到的GUI类中定义。定义为“受保护的BufferedReader输入;受保护的PrintWriter输出;”)
另外,服务器代码:
public class ServerClass {
private ServerSocket server;
private Socket connection;
private BufferedReader input;
private BufferedWriter output;
public void startServer(){
try{
server=new ServerSocket(6789,100);
while(true){
try{
waitForConnection();
setStreams();
ServerRunning();
}catch(EOFException eofException){
showMessage("\n Server ended the connection!");
}finally{
close();
}
}
}catch(IOException ioException){
ioException.printStackTrace();
}
}
private void waitForConnection() throws IOException{
showMessage("Waiting for someone to connect... \n");
connection=server.accept();
showMessage("Now connected to "+ connection.getInetAddress().getHostName());
}
private void setStreams() throws IOException{
output = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
output.flush();
input= new BufferedReader(new InputStreamReader(connection.getInputStream()));
showMessage("\n Streams are now set. \n");
}
public void ServerRunning() throws IOException{
String message="SERVER HERE!";
sendMessage(message);
do{
try{
message=input.readLine();
showMessage("\n"+message);
}catch(EOFException eofException){
showMessage("\n Server ended the connection!");
}
}while(message!="EXIT");
}
private void close(){
showMessage("\n Closing connections... \n");
try{
output.close();
input.close();
connection.close();
}catch(IOException ioException){
ioException.printStackTrace();
}
}
private void showMessage(String text){
System.out.println(text);
}
private void sendMessage(String message){
try{
output.write("SERVER - "+message);
output.flush();
showMessage(message);
}catch(IOException ioException){
System.out.println("\n ERROR!");
}
}
连接似乎还可以,所以我不会弄错。任何帮助,将不胜感激。
PS:我也尝试在服务器中使用PrintWriter,并且还尝试在流语句中尝试try catch,问题仍然存在。
您正在使用readLine()
哪个期望换行符。\n
在您发送的邮件中添加或不使用readLine()
。
我正在尝试连接一个带有gui的客户端和一个没有gui的服务器。连接正在进行中,但我看不到这两个应用程序之间的任何消息。(我应该将服务器放在客户端中,而将客户端放在服务器中) 客户端连接代码: PS:我也在服务器中尝试了PrintWriter,也尝试了try catch in stream语句,问题仍然存在。
我对套接字有点陌生,我正在尝试编写一个程序,在这个程序中,我基本上可以从客户端程序向服务器程序发送一些简单的请求。现在我只想在客户端有1或2个选项供用户选择。例如,如果用户在客户端选择“选项1”,那么服务器会返回一条消息“您选择选项1”,以此类推,但我不知道如何读取服务器上从客户端发送的输入。 客户代码: 服务器代码: 我需要在Clinet中使用两个不同的BufferedReader吗?一个用于用
我有这个代码可以在eclipse中与android Studio中的客户端通信服务器,我使用套接字,客户端向服务器发送消息,服务器读取该消息并确定一切正常,但当服务器向客户端发送消息时,客户端不强制任何东西;这是代码 还有这个 此代码是服务器代码的一部分,如果您需要客户端代码(Android Studio),请告诉我。 我需要帮助拜托
我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput
问题内容: 我正在构建一个小型聊天应用程序,其中客户端A希望通过服务器B将某些东西发送到客户端C。首先,这是解决问题的正确方法吗?我能够向服务器发送数据或从服务器接收数据,但仅限于客户端。例如,如果客户端A向服务器B发送数据而客户端C向服务器B发送数据,则我可以将数据发送回服务器A和C就像回显服务器一样。但是我想要的是将来自客户端A的数据通过服务器B转发到客户端C。 以下是服务器代码: 客户端代码
我组装了一个Java套接字服务器和客户端,可以互相发送消息,我想使用JavaScript作为客户端,但是。。。下面是在托管Java服务器并加载JavaScript客户端时发生的情况。 JavaScript: 这将在chrome控制台中打印: 到“ws://127.0.0.1:9005/”的WebSocket连接失败:WebSocket握手期间出错:无效状态行 WebSocket错误[对象事件] 我