Java客户端与服务器端的超简易通讯2
来源:互联网 发布:酒店前台软件系统 编辑:程序博客网 时间:2024/06/05 04:15
上一片文章Java客户端与服务器端的超简易通讯1主要想实现的效果是:客户端发送几个文字到服务器端,而服务器端接收文字并将其输出,而这篇文章想实现的效果是:在客户端输入一些数据(例如:"Hello ServerSocket!"),并将这些数据发送给服务器端,在服务器端判断这些数据是否是服务器想要的,若为想要的,则返回数据给客户端(例如:"Hi Socket!"),并把客户端和服务器端所接收的数据都将其输出。
好了,先贴出客户端的代码:
import java.io.DataInputStream;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintStream;import java.net.Socket;import java.util.Scanner;/** * 客户端代码 * */public class ClientSocket {public static void main(String[] args) {try {// 创建一个socket,并开始连接服务器Socket s = new Socket("172.31.84.13", 80);// "192.168.1.105"为服务器的ip地址,80为服务器的端口后,这两个都不是固定的。//创建一个Scanner对象,用于输入Scanner sc = new Scanner(System.in);String socketData = sc.nextLine();// 创建一个输出流OutputStream os = s.getOutputStream();// 创建一个字节打印流,便于将数据储存到输出流中PrintStream ps = new PrintStream(os);// 将所输入的数据打印到输出流中ps.println(socketData);//创建一个输入流,用于读取用服务器中返回的数据InputStream is = s.getInputStream();//创建一个DataInputStream对象,便于读取输入流中的数据DataInputStream dis = new DataInputStream(is);//已UTF-8的格式读取输入流中的数据String request = dis.readLine();//输出所读取的数据System.out.println(request);// 关闭流对象,释放资源s.close();ps.close();os.close();is.close();dis.close();} catch (Exception e) {// 将错误报告输出e.printStackTrace();}}}
以下为服务器的代码:
import java.io.DataInputStream;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;/** * 服务器端代码 * */public class ServerSocket1 {public static void main(String[] args) {try {//创建一个ServerSocket对象,并设置其端口ServerSocket ss = new ServerSocket(80);//设置一个无限循环,使服务器能无时无刻在检测是否有客户端发信息给服务器while (true) {//获取客户端的对象Socket s = ss.accept();//将客户端发送的输出流接收,在服务器的角度上看就是输入流InputStream is = s.getInputStream();//创建一个DataInputStream对象,便于解析所接受的输入流DataInputStream dis = new DataInputStream(is);//读取输入流中的一行数据,并将其赋值给一个字符串记录String request = dis.readLine();//将字符串输出System.out.println(request);//创建一个输出流,并将其返回给客户端OutputStream os = s.getOutputStream();// 创建一个字节打印流,便于将数据储存到输出流中PrintStream ps = new PrintStream(os);//判断客户端所发送的数据是否为服务器所需要的if (request.equals("Hello ServerSocket!")) {ps.println("Hi Socket!");} else {ps.println("smile~");}//关闭Socket对象,节省资源s.close();}} catch (Exception e) {//将错误报告输出e.printStackTrace();}}}
以下为客户端的运行结果:
以下为服务器的运行结果:
以下为源码:
Java客户端与服务器端的超简易通讯2
0 0
- Java客户端与服务器端的超简易通讯2
- Java客户端与服务器端的超简易通讯1
- Java客户端与服务器端的超简易通讯3
- Java客户端与服务器端的超简易通讯4
- Java Socket 模拟客户端与服务器端通讯
- JAVA模拟客户机与服务器实现简易的TCP通讯
- (源代码)基于wince OS客户端与基于window OS的服务器端之间的SOCKET通讯
- C++网络编程之——简易的服务器端与客户端
- Java中使用Socket实现服务器端和客户端通讯
- 客户端与服务器端的通信
- 服务器端与客户端的编程
- 客户端与服务器端的区别
- 客户端与服务器端的通信
- Thrift下Java客户端与服务器端的开发
- java中,客户端与服务器端跳转的几种方式
- Thrift下Java客户端与服务器端的开发
- Android客户端与java服务器端的Socket连接
- Java Socket服务器端与客户端的编程步骤总结
- RailsCasts10 Refactoring User Name Part 1 重构User Name(一)
- web 开发,前台验证
- Oracle 特殊符号'&'的处理
- [Linux Input]even-codes.txt input事件类型
- 飞思卡尔智能车经验
- Java客户端与服务器端的超简易通讯2
- JAVA中String.length()中文只算一个字节
- vi命令简单使用
- JAVA编程思想-第四章 控制执行流程
- listview控件的使用。
- Oracle space layer
- 润乾报表使用json数据源的方法改进
- java 序列化 Serializable 与 反序列化 总结
- SQL语句优化介绍