前面發了服務器端的代碼,這裏發客戶端的,服務器類連接
有2個類,因爲用了多線程,要實現Runnable接口
主類代碼
/**
* 這是測試類
* @author WantnRun
* 2013年6月24日 11:10:19
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
MySocket mySocket=new MySocket();//新建客戶端Socket類對象
new Thread(mySocket).start();//啓動線程調用run方法
}
}
客戶端Socket類主要代碼類
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* 客戶端的Socket類
* @author WantnRun
* 2013年6月24日 10:29:54
*/
public class MySocket implements Runnable {
/**
* Socket對象
*/
private Socket socket=null;
/**
* 服務器地址,如果在同一個機器上不能使用127.0.0.1的迴環地址
*/
private String HOST="192.168.1.222";
/**
* 服務器端口
*/
private int PORT=8886;
/**
* 讀取接收的數據
*/
private BufferedReader bufferedReader=null;
/**
* 將數據發送給對方
*/
private PrintWriter printWriter=null;
/**
* 多線程的run方法
*/
public void run() {
try {
//創建套接字,根據ip和端口號
socket=new Socket(InetAddress.getByName(HOST),PORT);
//使用套接字的輸入流構造BUfferedReader對象
bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//使用套接字的輸出流構造PrintWriter對象
printWriter=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true);
//鍵盤輸入對象
BufferedReader in=new BufferedReader((new InputStreamReader(System.in)));
while(true)
{
if(socket.isConnected())
{
//是連接狀態
//客戶端首先發送消息給服務器端
System.out.println("輸入消息");
String str=in.readLine();//獲取輸入
printWriter.println(str);//發送給服務器
//接收服務器返回的消息
String msg=bufferedReader.readLine();//讀取服務器的消息
System.out.println("服務器:"+msg);//打印服務器消息
}
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
如有任何錯誤點,請大神們指出,小弟在這裏謝謝了