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 block e.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 block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }</span>
转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42651911
情绪控_
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。