客户端套接字Socket类
Socket client=new Socket("192.168.0.1",1100); //服务器的IP地址,可以是字符串或InetAddress对象,1100是服务器端口
Socket类常用方法:
getInputStream() 获取套接字输入流,返回InputStream对象
getOutputStream() 获取套接字输出流,返回OutputStream对象
isConnected() 查看套接字是否连接
close() 关闭套接字
服务器套接字ServerSocket类
ServerSocket server=new ServerSocket(1100); //1100是服务器开启的端口
ServerSocket类常用的方法:
accept() 等待客户端的连接,返回成功连接的Socket对象
getInetAddress() 返回此服务器套接字的本地地址
isClosed() 查看服务器套接字是否关闭
close() 关闭套接字
【案例】
创建两个Project,一个Server(服务器),一个Client(客户端),首先启动服务器,等待客户端访问
public class Server { public static void main(String[] args) { ServerSocket server= null;//创建服务器套接字 try { server = new ServerSocket(1100); System.out.println("服务器启动成功,等待客户端访问..."); //等待客户端连接,服务器通过此行代码与客户端互通 Socket client=server.accept(); System.out.println("有客户端接入,客户端IP:"+client.getInetAddress()); //服务器从客户端接收的消息 InputStream in=client.getInputStream();//输入流 byte[] bt=new byte[1024];//创建字节数组,并指定大小 int len=in.read(bt);//读入client字节流内容 String data=new String(bt,0,len);//字节转字符 System.out.println("客户端发来消息:"+data); //服务器反馈给客户端的信息 OutputStream out=client.getOutputStream();//输出流 String message="我是服务器,欢迎访问"; out.write(message.getBytes());//输出的内容,字符串转字节(字符数组) client.close(); } catch (IOException e) { e.printStackTrace(); } } }
public class Client { public static void main(String[] args) { try { Socket client=new Socket("127.0.0.1",1100);//创建套接字,指定服务器地址、端口。有效则自动连接 System.out.println("连接成功"); //客户端发给服务器的消息 OutputStream out=client.getOutputStream();//输出流 String message="我是客户端"; out.write(message.getBytes());//输出的内容,字符串转字节(字符数组) //客户端接收服务器反馈的信息 InputStream in=client.getInputStream();//输入流 byte[] bt=new byte[1024];//创建字节数组,并指定大小 int len=in.read(bt);//读入client字节流内容 String data=new String(bt,0,len);//字节转字符 System.out.println("服务器反馈的消息:"+data); client.close();//关闭套接字 } catch (IOException e) { e.printStackTrace(); } } }