cmd中的Java套接字编程

阿克沙伊(Akshay Dingra)

因此,我有以下代码在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章