閑着寫了個簡單java的socket編程,無語了,這么簡單的程序都寫不出來了,代碼如下:
==================================================================================
Server(服務器端):
package remember;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public Server() {
try {
ss = new ServerSocket(33333);
System.out.println("========親,服務器已經啟動===========");
while (true) {
socket = ss.accept();
String RemoteIP = socket.getInetAddress().getHostName();
String RemotePort = "" + socket.getLocalPort();
System.out.println(RemoteIP+" "+ RemotePort);
out = new PrintWriter(socket.getOutputStream(), true);
out.print("消息已經收到了");
in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
String line=in.readLine();
System.out.print(line);
in.close();
out.close();
socket.close();
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("wrong");
}
}
public static void main(String[] args) {
new Server();
}
}
Client(客戶端):
package remember;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
private Socket socket;
private BufferedReader in;
private PrintWriter out; public Client() {
try {
System.out.println("Try to Connect to 127.0.0.1:33333"); socket = new Socket("127.0.0.1",33333);
System.out.println("The Server Connected!");
System.out.println("Please enter some Character:"); BufferedReader line = new BufferedReader(new InputStreamReader(System.in));
out = new PrintWriter(socket.getOutputStream(),true); out.print(line.readLine());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(in.readLine()); out.close(); in.close();
socket.close();
}catch(IOException e) { out.println("Wrong");
} }
public static void main(String[] args) {
new Client();
} }
5555555555555555,以前也這樣寫的,怎么忘了啊。研究半天總結如下:
----------------------------------------------------------------------------------------------------------------------------------
服務端的PrintWriter一定要寫成out.println,不能寫成out.print。
客戶端的PrintWriter可寫成out.println也可以寫成out.print(但如果寫成out.print就只能發數據接收不到數據了)。
哎呀,糾結了半天,終於寫好了。希望能幫到和我一樣的人,所以就分享下,本人原創。