java如何實(shí)現(xiàn)的網(wǎng)絡(luò)通信
1.使用IP地址---定位一臺(tái)主機(jī) 使用端口號(hào)---定位一個(gè)應(yīng)用 ===>InetAddress類(lèi)
創(chuàng)建一個(gè)InetAddress的對(duì)象InetAddress inet = InetAddress.getByName("www.baidu.com");
獲取本機(jī)的一個(gè)InetAddress的對(duì)象 getLocalHost()
域名:getHostName() ip:getHostAddress()
public static void client() throws IOException{
Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9090);
OutputStream os = socket.getOutputStream();
System.out.println("請(qǐng)輸入多個(gè)字符:");
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
os.write(str.getBytes());
socket.shutdownOutput();
InputStream is = socket.getInputStream();
byte[] b = new byte[10];
int len;
while((len = is.read(b)) != -1){
System.out.print(new String(b, 0 , len));
}
is.close();
scanner.close();
os.close();
socket.close();
}
public static void server() throws IOException{
ServerSocket ss = new ServerSocket(9090);
Socket socket = ss.accept();
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
char[] c = new char[20];
int len;
StringBuffer sb = new StringBuffer() ;
while((len=isr.read(c))!=-1){
sb.append(c, 0, len);
}
String restr = sb.toString().toUpperCase();
OutputStream os = socket.getOutputStream();
os.write(restr.getBytes());
os.close();
isr.close();
socket.close();
ss.close();
}