服务器端ServerSocket
-
–创建对象:
-ServerSocket(int port)创建绑定到特定端口的服务器套接字。
-
–常用方法:
--Socket accept()侦听并接受到此套接字的连接。 --void close()关闭此套接字。
客户端Socket
-
–创建对象:
--Socket(String host, int port)创建一个流套接字并将其连接到指定主机上的指定端口号。
-
-常用方法:
--void close()关闭此套接字。 --InputStream getInputStream()返回此套接字的输入流。 --OutputStream getOutputStream() 返回此套接字的输出流。
入门案例
服务器端:
//这个类表示Socket通信的服务器端
public class Server {
public static void main(String[] args) {
try {
//1,在8000端口开启服务,等待客户端的连接 ServerSocket(int port)
//端口号:0~65535,其中0~1024被系统占用!!
ServerSocket server = new ServerSocket(8000);
//2,接收客户端的请求Socket accept()侦听并接受到此套接字的连接
Socket socket = server.accept();
//3,读取 客户端发来的数据
InputStream in = socket.getInputStream();
for (int i = 0; i < 5; i++) {//循环获取客户端的hello
char c = (char)in.read();//一个字节一个字节读取
System.out.print(c);//同行展示
}
//4、服务器把数据响应回客户端
OutputStream out = socket.getOutputStream();
out.write("java".getBytes());
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
//这个类表示Socket通信的客户端
public class Client {
public static void main(String[] args) {
try {
//1,连接指定的服务器Socket(String host, int port)
//127.0.0.1 是本机的ip地址,实际工作中,要指定你想要访问的服务器的ip
Socket socket = new Socket("127.0.0.1",8000);
//2,写出数据 发给服务器hello
OutputStream out = socket.getOutputStream();
out.write("hello".getBytes());//getBytes()把字符串转byte[]
out.flush();//刷新数据
//3、解析服务器发回来的数据
InputStream in = socket.getInputStream();
for (int i = 0; i < 4; i++) {
char c = (char)in.read();//一个字节一个字节读取服务的数据
System.out.print(c);//同行展示
}
} catch (IOException e) {
e.printStackTrace();
}
}
}