【java基础】:一个可用的java做的关于socket的客户端跟服务端
2017-06-19 11:38
387 查看
用法
先说怎么用吧,先开服务端,再开客户端,否则的话客户端会报错,因为无法连上服务端原理
两者通过监听端口来进行交互,客户端如何传输数据过去,如何获得服务端返回的数据都说的很清楚了,服务端如何获取客户端的数据如何给客户端返回数据都已经集成的很清楚,自己看代码注释就可以了代码
下面是两个java文件,直接粘下来,然后找环境运行就可以了服务端
package uuid; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.util.Scanner; public class SocketClient { public static void main(String[] args) throws Exception { Scanner input = new Scanner(System.in); // 1: 创建一个基于TCP协议的socket服务,在建立对象时,要指定连接服务器和端口号 Socket sc = new Socket("localhost", 9999); // 2: 通过建立的Socket对象获取Socket中的输出流,调用getOutStream方法 OutputStream out = sc.getOutputStream(); System.out.println("请输入要转化的字母:"); String initData = input.next();//获取控制台的输入 // 3: 写入到Socket输出流中 out.write(initData.getBytes()); System.out.println("等待服务器端返回数据"); // 4: 通过建立的Socket对象获取Socket中的输入流,输入流会接受来自服务器端数据 InputStream in = sc.getInputStream(); byte[] b = new byte[1024]; // 5: 获取输入字节流的数据,注意此方法是堵塞的,如果没有获取数据会一直等待 int len = in.read(b); System.out.println("返回的结果为:" + new String(b, 0, len)); // 关闭Socket out.close(); in.close(); sc.close(); input.close(); } }
客户端
package uuid; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class SocketServer { public static void main(String[] args) throws Exception { // 1:建立服务器端的tcp socket服务,必须监听一个端口 ServerSocket ss = new ServerSocket(9999); while(true) { System.out.println("等待客户端请求……"); // 2: 通过服务器端的socket对象的accept方法获取连接上的客户端对象,没有则堵塞,等待 Socket socket = ss.accept(); System.out.println("握手成功……"); // 3: 通过输入流获取数据 InputStream input = socket.getInputStream(); byte[] b = new byte[1024]; int len = input.read(b); String data = new String(b, 0, len); System.out.println("客户端数据为:" + data); // 4: 通过服务器端Socket输出流,写数据,会传送到客户端Socket输入流中 OutputStream out = socket.getOutputStream(); out.write(data.toUpperCase().getBytes()); // 5: 关闭socket out.close(); input.close(); socket.close(); } } }
相关文章推荐
- Java IO——Socket:通过多线程实现多客户端与一个服务端通信
- Java IO——Socket:通过多线程实现多客户端与一个服务端通信
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- Java中利用socket实现简单的服务端与客户端的通信(基础级)
- Java Socket实现多个客户端连接同一个服务端
- java Socket 多个客户端连接同一个服务端
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- socket基础实例(一个服务端对应一个客户端情形)
- 随手写了一个简单的socket服务端和客户端
- Java Socket多线程服务端、客户端
- Java做Socket服务端与Delphi做Socket客户端的通信
- Java 的 Socket 服务器和客户端通信的例子 存在一个小问题
- socket ( java ) 简单多个客户端、服务端通信(多线程)
- 一个简单的socket服务端和客户端程序:客户端发送数据给服务端,服务端接收到数据后再给客户端发送数据
- VC面向对象的方式 写一个基于TCP的 客户端服务端程序 (SOCKET)
- 分享:Java socket ,多客户端同时与服务端不停的交换数据
- Java 的 Socket 服务器和客户端通信的例子 存在一个小问题
- socket ( java ) 简单客户端、服务端通信
- Java Socket多线程服务端、客户端
- 一个 Java 的 Socket 服务器和客户端通信的例子