客戶端代碼:
Socket s1=new Socket("localhost",4444);
System.out.println("Client process");
byte b[]=new byte[150];
int n=4;
BufferedReader BR= new BufferedReader(new InputStreamReader(s1.getInputStream()));
String str=new String();
while((str=BR.readLine())!=null) {
System.out.println();
System.out.println(str);
}
s1.close();
簡單的服務器代碼:
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4444);
}
catch (IOException e) {
System.err.println("Could not listen on port: 4444.");
System.exit(1);
}
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept();
}
catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
String inputLine, outputLine;
// write to client
for(int i=0;i<10;i++){
out.println("hello from server" + i);
Thread.sleep(1000);
System.out.println("Server sent " + i);
}
out.close();
in.close();
clientSocket.close();
serverSocket.close();
System.err.println("Server done.. closing now..");
PS:添加到這些主要方法,並添加投用適當的例外條款。
你能修改服務器代碼嗎?如果是的話,請同時顯示該代碼。 –
ServerSocket s1 = new ServerSocket(3001); \t \t Socket ClientSocket = s1.accept(); \t \t的RandomAccessFile爲Ra =新RandomAccessFile的( 「C:/HelloWorld.java」, 「R」); \t \t OutputStream OS = ClientSocket.getOutputStream(); \t \t String str = new String(「hai」); \t \t的BufferedReader BR =新的BufferedReader(新的InputStreamReader(System.in)); \t \t而((STR = Ra.readLine())!= NULL) \t \t { \t \t \t的System.out.println(STR); \t \t \t BR.read(); \t \t \t OS.write(str.getBytes()); \t \t} \t \t ClientSocket.close(); – pavi
你是否偶然使用'nio'?代碼應該使用普通的'io'工作。你是否遇到了一些你沒有抓住的例外?你的代碼與[從插座讀取文本的示例庫]上的代碼非常相似(http://www.exampledepot.com/egs/java.net/ReadFromSocket.html) – Ali