Java网络编程笔记4

Socket和ServerSocket,网络编程可以分为创建Socket、打开连接Socket的输入流和输出流,对Socket进行编程,关闭Socket。

创建Socket

一个功能齐全的Socket的工作过程包含以下四个步骤:

1、创建Socket。

2、打开连接到Socket的输入/输出流。

3、按照一定的协议对Socket进行读/写操作。

4、关闭Socket

在java.net包中,定义了Socket和ServerSocket两个类,类Socket表示客户端或者服务器Socket连接的两端。

类Socket中构造方法如下:

Socket(inetAddress address,int port)

Socket(inetAddress address,int port,boolean stream)

Socket(String host,int port)

Socket(String host,int port,boolean stream)

Socket(SocketImp impl)

Socket(String host,int port,inetAddress localAddr,int localport)

Socket(inetAddress address,int port,inetAddress localAddr,int localport)

参数address表示IP地址,host表示主机名,port表示端口号,stream用于指明Socket是流还是数据报,localPort表示本地主机的端口号,localAddr是本地及其地址,impl是Socket的父类。

ServerSocket中的构造方法如下:

ServerSocket(int port)

ServerSocket(int port,int backlog)

ServerSocket(int port,int backlog,InetAddress bindAddr)

参数bindAddr表示本机地址。

Socket和ServerSocket类库都位于java.net包中,ServerSocket用于服务器端,Socket是建立网络连接时使用的。连接成功后会在两端产生一个Socket实例,通过这Socket实例,可以完成所需的会话。

Socket常用的方法有Accept方法,主要用于产生“阻塞”,直到接受到一个连接,并且返回一个客户端的Socket对象实例。getInputStream方法,用于获取网络连接输入,返回一个InputStream对象的实例。getOutputStream方法,获取OutputStream实例。

参看客户端与服务器通信:

服务端:

<span style="font-size:18px;">public class Server {public static void main(String[] args) {ServerSocket ss;try {ss = new ServerSocket(30000);while(true){Socket socket=ss.accept();OutputStream outputStream=socket.getOutputStream();InputStream inputStream=socket.getInputStream();BufferedReader br=new BufferedReader(new InputStreamReader(inputStream));String request=br.readLine();System.out.println(request);socket.close();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}</span>

客户端:

<span style="font-size:18px;">public class Client {public static void main(String[] args) {try {Socket socket=new Socket("192.168.120.112",30000);OutputStream outputStream=socket.getOutputStream();InputStream inputStream=socket.getInputStream();PrintStream printStream=new PrintStream(outputStream);printStream.print("Client--->");socket.close();} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}</span>

http://blog.csdn.net/hai_qing_xu_kong/article/details/42651911 情绪控_

思念是对昨天悠长的沉淀和对未来美好的向往。

Java网络编程笔记4

相关文章:

你感兴趣的文章:

标签云: