查看本机的IP地址
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Address {
public static void main(String[] args) {
InetAddress ip;
try {
ip=InetAddress.getLocalHost();
String localname=ip.getHostName();
String localip=ip.getHostAddress();
System.out.println("本机名:"+localname);
System.out.println("本机IP地址:"+localip);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
网络通信
/**
* 客户端
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class MyClient {
public static void main(String[] args) {
try {
System.out.println("客户端启动");
// Socket socket=new Socket("192.168.0.54", 12316);
Socket socket=new Socket("192.168.0.82", 8080);
// Socket socket=new Socket("192.168.0.83", 8080);
OutputStream os=socket.getOutputStream();
OutputStreamWriter osw=new OutputStreamWriter(os);
BufferedWriter bw=new BufferedWriter(osw);
Scanner scanner=new Scanner(System.in);
InputStream is=socket.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
while(true){
System.out.println("客户端:");
String s=scanner.nextLine();
bw.write(s+"\n");
bw.flush();
String s1=br.readLine();
System.out.println("服务器:\n"+s1);
if (s.equals("bye")|s1.equals("bye")) {
br.close();
bw.close();
socket.close();
System.out.println("通话结束,断开连接。");
break;
}
}
bw.close();
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 服务器
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import org.xml.sax.InputSource;
public class MyServer {
public static void main(String[] args) {
try {
System.out.println("服务器启动");
ServerSocket ss=new ServerSocket(8080);
Socket socket=ss.accept();
System.out.println("连接成功");
OutputStream os=socket.getOutputStream();
OutputStreamWriter osw=new OutputStreamWriter(os);
BufferedWriter bw=new BufferedWriter(osw);
Scanner scanner=new Scanner(System.in);
InputStream is=socket.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String s1=br.readLine();
while(true){
System.out.println("客户端:\n"+s1);
System.out.println("服务器:");
String s=scanner.nextLine();
bw.write(s+"\n");
bw.flush();
if (s.equals("bye")|s1.equals("bye")) {
br.close();
bw.close();
socket.close();
System.out.println("通话结束,断开连接。");
break;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
先启动服务器,再运行客户端,客户端先给服务器发消息
服务器端:服务器启动
客户端 :客户端启动
客户端:
服务器端:服务器启动
连接成功
客户端 :客户端启动
客户端:
你好,我是客户端
服务器端:服务器启动
连接成功
客户端:
你好,我是客户端
服务器:
服务器端:服务器启动
连接成功
客户端:
你好,我是客户端
服务器:
我是服务器,收到了客户端的消息
客户端 :客户端启动
客户端:
你好,我是客户端
服务器:
我是服务器,收到了客户端的消息
客户端: