我在java中創建了一個簡單的服務器和客戶端,用於發送和接收來自彼此的消息。目前,我已將端口號硬編碼到代碼中,但我想將其更改爲來自命令行的用戶輸入。在下面的代碼中,我使用args [0]作爲端口號,但是當我編譯失敗時,任何人都可以幫忙嗎? ,我是新來的Java和插座很抱歉,如果這是一個很小的問題Java Socket命令行參數
import java.io.*;
import java.net.*;
class SimpleServer
{
public static void main(String args[]) throws Exception
{
//declaring string variables
String fromclient;
String toclient;
//new socket object, listening on port 3000
ServerSocket Server = new ServerSocket (args[0]);
//prints when started and no client connected
System.out.println ("TCPServer Waiting for client on port 3000");
//infinate loop
while(true)
{
//listens for connection
Socket connected = Server.accept();
//prints clients adddress and port
System.out.println(" THE CLIENT"+" "+ connected.getInetAddress() +":"+connected.getPort()+" IS CONNECTED ");
//reads in message form user
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
//reads in message from clinet
BufferedReader inFromClient = new BufferedReader(new InputStreamReader (connected.getInputStream()));
//prints message to client
PrintWriter outToClient = new PrintWriter(connected.getOutputStream(),true);
//infinate loop
while (true)
{
//printing instructions for killing connection
System.out.println("SEND(Type Q or q to Quit):");
//reading in user input
toclient = inFromUser.readLine();
//if user enters q or Q kill connection
if (toclient.equals ("q") || toclient.equals("Q"))
{
outToClient.println(toclient);
connected.close();
break;
}
else
{
outToClient.println(toclient);
}
//reading from client
fromclient = inFromClient.readLine();
//if user enter q or Q kill connection
if (fromclient.equals("q") || fromclient.equals("Q"))
{
connected.close();
break;
}
//printing out the message from client
else
{
System.out.println("RECIEVED:" + fromclient);
}
}
}
}
}
這是即將到來
SimpleServer.java:14: error: no suitable constructor found for ServerSocket(String)
ServerSocket Server = new ServerSocket (args[0]);
嘗試用它來取代代碼'ServerSocket Server = new ServerSocket(Integer.parseInt(args [0]));'ServerSocket沒有將字符串作爲參數的構造函數。 – Eugene 2015-03-02 13:26:09