---------------------- android教育訓練 java教育訓練 期待與您交流! ----------------------
package com.net.tcp;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* tcp傳輸
* 1,tcp分用戶端和服務端
* 2,用戶端對應的對象是Socket,服務端對應的對象是ServerSocket
*
*
* @author zjw
*
*/
public class Socket_ServerSocket {
}
/**
* 用戶端
* 通過查閱socket對象,發現在該對象建立時,就可以去連接配接指定主機
* 因為tcp是面向連接配接的,是以在建立socket服務是,就要有伺服器存在,并連接配接成功,形成通路後,在該通道進行資料的傳輸
*
*
* @author zjw
*
*/
class Client{
public void client() throws UnknownHostException, IOException{
//建立用戶端的socket服務,指定目的主機和端口
Socket socket=new Socket("127.0.0.1",10000);
//為了發送資料,應該擷取socket流中的輸出流
OutputStream os=socket.getOutputStream();
os.write("這是tcp用戶端發來的資訊".getBytes());
socket.close();
}
}
/**
* 服務端
* 1,建立服務端ServerSocket服務,并監聽一個端口
* 2,擷取連接配接過來的用戶端對象,通過ServerSocket的accept方法,沒有用戶端連接配接就會等,是以這個方法是阻塞式的
* 3,用戶端如果發過來資料,那麼服務端要使用對應的用戶端對象,并擷取該用戶端對象的讀取流來讀取發過來的資料,并列印輸出到控制台
* 4,關閉服務端(此項是可選操作,一般不會關)
*
* @author zjw
*
*/
class Server{
public void server() throws IOException{
ServerSocket ser=new ServerSocket(10000);
String ip=ser.getInetAddress().getHostAddress();//擷取用戶端的ip位址
System.out.println("ip:"+ip);
Socket client=ser.accept();//此方法為阻塞式方法,擷取用戶端的Socket
byte[]b=new byte[1024];
int num=0;
while(-1!=(num=client.getInputStream().read(b))){
System.out.println(new String(b,0,num));
}
client.close();//關閉用戶端
ser.close();//關閉服務端
}
}
//下面分别寫了兩個類,并建立連接配接
package com.net.tcp;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
/**
* 用戶端
* 1,建立Socket服務,指定要連接配接的主機和端口
* 2,擷取Socket流中的輸出流,将資料寫到該流中,通過網絡發給服務端
* 3,擷取Socket流中的輸入流,将服務端回報的資料擷取到,并列印
* 4,關閉用戶端資源
* @author zjw
*/
public class Client_class {
public static void main(String[] args) throws IOException {
//建立用戶端Socket對象,并指定服務端ip位址,和端口号
Socket socket=new Socket("192.168.1.100",10000);
//擷取輸出流
OutputStream os=socket.getOutputStream();
os.write("這是用戶端發來的資訊".getBytes());
//擷取輸入流
InputStream is=socket.getInputStream();
byte[]b=new byte[1024];
int num=is.read(b);
System.out.println(new String(b,0,num));
//關閉用戶端資源k
socket.close();
}
}
package com.net.tcp;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 服務端
* @author zjw
*
*/
public class Server_class {
public static void main(String[] args) throws IOException, InterruptedException {
//建立服務端ServerSocket對象
ServerSocket ss=new ServerSocket(10000);
Socket soc=ss.accept();//接收用戶端
InputStream is=soc.getInputStream();//建立輸入流
byte[]b=new byte[1024];
int num=is.read(b);
System.out.println(new String(b,0,num));
OutputStream os=soc.getOutputStream();//建立輸出流
// Thread.sleep(10000);
os.write("aaaaaaaaaaaa".getBytes());
soc.close();
ss.close();
}
}
---------------------- android教育訓練 java教育訓練 期待與您交流! ---------------------- 詳細請檢視 http://edu.csdn.net/heima