服務器端
公共?班級?MyTcpServer{
公共?靜電?作廢?mian(String[]?args){
試試?{
//構造壹個服務器端端口為12345的socket服務器;
ServerSocket?serverSocket?=?新的?server socket(12345);
//等待接收socket客戶端的連接,獲取客戶端的socket對象。
//?當沒有客戶端連接時,此方法將被阻止。
插座?客戶?=?server socket . accept();
//獲取socket客戶端的輸入管道。
InputStream?是嗎?=?client . getinputstream();
//獲取socket客戶端的輸出管道。
OutputStream?os=?client . get output stream();
byte[]?緩沖?=?新的?byte[1024];
int?萊恩。=?is.read(緩沖區);
system . out . println("-& gt;+新?字符串(緩沖區));
os.write("餵?客戶”。getBytes());
OS . flush();
is . close();
OS . close();
client . close();
server socket . close();
}?接住?(IOException?e)?{
e . printstacktrace();
}
}
}
客戶?建立
私人?班級?MyThread?延伸?線程{
@覆蓋
公共?作廢?run()?{
super . run();
試試?{
插座?客戶?=?新的?插座(" 192.168.3 . 173 ",12345);//IP是服務器IP?,端口號就是服務器端口號。
InputStream?在?=?client . getinputstream();
OutputStream?出局?=?client . get output stream();
out.write("餵?服務器”。getBytes());//如果先在服務器端執行讀取操作。那麽客戶端應該先寫。
//這是交替進行的,否則在Read中會全部阻塞?讀取操作。
out . flush();
byte[]?緩沖?=?新的?byte[1024];
int?萊恩。=?in . read();
in.read(緩沖區);
system . out . println("-& gt;+新?字符串(緩沖區));
}?接住?(IOException?e)?{
e . printstacktrace();
}
}
}
}