因此,我有以下代码在linux的telnet登录上运行。如何使它在cmd中运行?我尝试在cmd中运行tcp客户端和服务器程序,但没有得到输出。这是我的代码,它在linux telnet上运行,但不在Windows cmd上运行。
import java.io.*;
import java.net.*;
class tcpclient{
public static void main(String args[])throws Exception{
String hwaddr,modsentence;
BufferedReader inFromUser=new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket=new Socket("localhost",2057);
DataOutputStream outToServer= new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
System.out.print("Enter Ip address");
hwaddr=inFromUser.readLine();
outToServer.writeBytes(hwaddr+""+"\n");
modsentence=inFromServer.readLine();
System.out.println("FROM SERVER:"+modsentence);
clientSocket.close();
}
}
import java.net.*;
import java.io.*;
class tcpserver{
public static void main(String args[])throws Exception
{
String clientSentence;
ServerSocket welcomeSocket = new ServerSocket(2057);
while(true)
{
Socket connectionSocket=welcomeSocket.accept();
BufferedReader inFromClient=new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient=new DataOutputStream(connectionSocket.getOutputStream());
clientSentence=inFromClient.readLine();
if(clientSentence.equals("a"))
outToClient.writeBytes("testtt");
}
}
}
改变
outToClient.writeBytes("testtt");
到
outToClient.writeBytes("testtt\n");
根据https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine()
readLine()读取一行文本。一行被认为由换行符('\ n'),回车符('\ r')或回车符后立即换行符中的任何一个终止。
这将使
modsentence = inFromServer.readLine();
返回一个String并将其分配给modsentence。
还请记住,您的tcpserver仅响应字符“ a”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句