Java系列讲座一:TCP方式Socket通信案例讲解
2017-07-12 11:25
621 查看
开发网络通信软件,如QQ,阿里旺旺等即时通讯软件时,Socket通信是必备的基础知识,今天跟大家谈谈Socket通信中TCP方式通信的软件开发步骤及主要代码讲解:
第一步:开发服务器端程序Server.java,源代码如下:
第二步:开发客户端程序Client.java,源代码如下:
第三步:先运行服务器端程序,再运行客户端程序,可以看到网络传输后的打印结果
说明:该程序是一个比较简单的入门级代码,整个程序只能进行一次网络通信,如果需要做成一个可以不断的通信软件的软件,还要用到多线程,IO流操作,数据库操作等诸多技术综合应用。
如果大家有兴趣可以看看我的 java从入门到精通+QQ即时通讯软件项目实训的教学视频,链接地址:http://edu.51cto.com/course/6946.html
第一步:开发服务器端程序Server.java,源代码如下:
package T16; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; public class Server { //服务器端程序 public static void main(String[] args) { /** * 1.创建服务器端ServerSocket,指定端口,有多块网卡时可以指定IP * 参数1:端口 * 参数2:等待排队的客户端数量 */ try { //1.创建服务器端ServerSocket ServerSocket serverSocket = new ServerSocket(8888,5); System.out.println("服务器启动成功:"+serverSocket.toString()); //2.等待客户连接 Socket clientSocket = serverSocket.accept(); System.out.println("有客户来,请接客..........."); //3.绑定输入流 InputStream is = clientSocket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); //4.绑定输出流 OutputStream os = clientSocket.getOutputStream(); PrintStream ps = new PrintStream(os); //5.接收数据 System.out.println("服务器端接收:"+br.readLine()); //6.发送数据 String str = "欢迎连接到本服务器."; ps.println(str); //7.关闭socket通信 clientSocket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }
第二步:开发客户端程序Client.java,源代码如下:
package T16; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.Calendar; public class Client { /** * 客户端程序: * 1.指定服务器的IP地址; * 2.指定服务器的端口; * * */ public static void main(String[] args) { try { //1.创建客户端Socket; Socket socket = new Socket("127.0.0.1",8888); System.out.println("连接服务器成功...."); //2.绑定输入输出流 OutputStream os = socket.getOutputStream(); PrintStream ps = new PrintStream(os); InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); //3.发送数据 ps.println("我是客户端,请求连接..."); //4.接收数据 System.out.println("客户端接收服务器数据:"+br.readLine()); //5.关闭Socket socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
第三步:先运行服务器端程序,再运行客户端程序,可以看到网络传输后的打印结果
说明:该程序是一个比较简单的入门级代码,整个程序只能进行一次网络通信,如果需要做成一个可以不断的通信软件的软件,还要用到多线程,IO流操作,数据库操作等诸多技术综合应用。
如果大家有兴趣可以看看我的 java从入门到精通+QQ即时通讯软件项目实训的教学视频,链接地址:http://edu.51cto.com/course/6946.html
相关文章推荐
- JAVA系列课程讲座一:使用Socket通信实现网络通信程序(TCP方式)
- Java系列讲座二:Socket网络通信实现聊天软件项目讲解(UDP)
- Java系列讲座二:Socket网络通信实现聊天软件项目讲解(UDP)
- JAVA系列课程讲座二:使用Socket通信实现简单聊天通信程序(UDP方式)
- 【java面试系列之网络编程】TCP和UDP的区别、TCP协议的三次握手和四次挥手、TCP协议的通信状态、网络编程时的同步、异步、阻塞、非阻塞、进程间的通信方式、TCP的流量控制和拥塞控制
- Java线程的方式实现TCP通信的小案例
- java分布式开发TCP/IP NIO无阻塞 Socket((基于消息方式实现系统间的通信) )(转)
- C#TCP Socket网络编程(异步通信方式)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- 【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)
- Java 基于 TCP/IP 实现 Socket中的多客户端通信
- Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
- 基于多线程的TCP socket通信经典案例
- 【Java TCP/IP Socket】深入剖析socket——TCP通信中由于底层队列填满而造成的死锁问题(含代码)
- java 通过 socket 实现 服务器和客户端的通信 TCP
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- 基于TCP/UDP的Socket网络通信系列之Java中的InetAddress的应用(二)
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)