Server Socket通信简单的实例分析

开发 后端
Server Socket通信在实际的应用中有很多的问题,有些人不知道如何才能解决。其实我们仔细学习源代码就能找到你想要的。

Server Socket通信一直在不断的进行相关的测试,在不断的使用中有很多的问题存在,其实有不少的问题在源代码中就能找打答案。所谓Server Socket通信通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

Socket和ServerSocket类库位于java.net包中。Server Socket用于服务器端,Server Socket通信是建立网络连接时使用的。在 连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服 务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。

下面给出一个最简单的Server Socket通信的例子供初学者参考:

服务器端:ServerDemo.java

Java代码

 

  1. package com.lanber.socket;   
  2. import java.io.DataInputStream;   
  3. import java.io.DataOutputStream;   
  4. import java.io.IOException;   
  5. import java.net.ServerSocket;   
  6. import java.net.Socket;   
  7. public class ServerDemo {   
  8. /**   
  9. * 注意:Socket的发送与接收是需要同步进行的,即客户端发送一条信息,服务器必需先接收这条信息,   
  10. * 而后才可以向客户端发送信息,否则将会有运行时出错。   
  11. * @param args   
  12. */   
  13. public static void main(String[] args) {   
  14. ServerSocket ss = null;   
  15. try {   
  16. ss = new ServerSocket(8888);   
  17. //服务器接收到客户端的数据后,创建与此客户端对话的Socket   
  18. Socket socket = ss.accept();   
  19. //用于向客户端发送数据的输出流   
  20. DataOutputStream dos = new DataOutputStream(socket.getOutputStream());   
  21. //用于接收客户端发来的数据的输入流   
  22. DataInputStream dis = new DataInputStream(socket.getInputStream());   
  23. System.out.println("服务器接收到客户端的连接请求:" + dis.readUTF());   
  24. //服务器向客户端发送连接成功确认信息   
  25. dos.writeUTF("接受连接请求,连接成功!");   
  26. //不需要继续使用此连接时,关闭连接   
  27. socket.close();   
  28. ss.close();   
  29. } catch (IOException e) {   
  30. e.printStackTrace();   
  31. }   
  32. }   
  33. }  

Server Socket通信客户端:ClientDemo.java

Java代码

 

  1. package com.lanber.socket;   
  2. import java.io.DataInputStream;   
  3. import java.io.DataOutputStream;   
  4. import java.io.IOException;   
  5. import java.io.OutputStream;   
  6. import java.net.Socket;   
  7. import java.net.UnknownHostException;   
  8. public class ClientDemo {   
  9. /**   
  10. * @param args   
  11. */   
  12. public static void main(String[] args) {   
  13. Socket socket = null;   
  14. try {   
  15. socket = new Socket("localhost",8888);   
  16. //获取输出流,用于客户端向服务器端发送数据   
  17. DataOutputStream dos = new DataOutputStream(socket.getOutputStream());   
  18. //获取输入流,用于接收服务器端发送来的数据   
  19. DataInputStream dis = new DataInputStream(socket.getInputStream());   
  20. //客户端向服务器端发送数据   
  21. dos.writeUTF("我是客户端,请求连接!");   
  22. //打印出从服务器端接收到的数据   
  23. System.out.println(dis.readUTF());   
  24. //不需要继续使用此连接时,记得关闭哦   
  25. socket.close();   
  26. } catch (UnknownHostException e) {   
  27. e.printStackTrace();   
  28. } catch (IOException e) {   
  29. e.printStackTrace();   
  30. }   
  31. }  
  32. }  

以上就是对Server Socket通信的详细代码介绍,希望大家找到了自己需要的。

【编辑推荐】

  1. Java ServerSocket的服务端代码介绍
  2. Java Socket线程的设计原理介绍
  3. Java Socket共享的设计原理深层透析
  4. Java socket套接字如何建立自身服务器
  5. Java Socket编程相关源代码的介绍
责任编辑:张浩 来源: 博客园
相关推荐

2010-03-16 10:10:57

Java线程通信

2012-12-24 09:55:59

交换机网络通信

2015-01-15 16:25:23

Android源码Socket通信

2019-12-31 20:55:13

Socket通信TCP

2010-06-11 14:31:08

通信协议

2022-01-17 21:29:36

通信信息电线

2020-07-28 08:54:39

内核通信Netlink

2009-09-01 18:36:35

C#委托实例

2013-01-24 10:14:54

SilverlightRIASocket

2010-09-13 15:06:40

sql server字

2015-09-08 10:06:18

JavaSocket编程通信

2011-06-13 16:51:19

Qt Socket

2010-03-22 10:42:37

Java Socket

2010-03-19 11:12:23

Java Socket

2011-12-13 12:32:54

JavaNIO

2010-03-22 13:25:47

Java Socket

2011-07-11 14:12:19

Java串口通信

2015-04-07 09:32:57

phpSocket通信php出现错误

2011-07-11 14:19:54

JAVA串口通信

2010-09-02 11:47:43

SQL删除
点赞
收藏

51CTO技术栈公众号