基于TCP/IP和UDP的socket编程
来源:互联网 发布:淘宝退款售后订单删除 编辑:程序博客网 时间:2024/06/07 21:58
我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP和UDP/TP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。
1.基于TCP/IP的socket编程
2.基于TCP/IP的socket编程
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class SocketServer { // 设置端口号 public static int portNo = 8082; public static void main(String[] args) throws IOException { //1.创建socket服务端对象 ServerSocket s = new ServerSocket(portNo); System.out.println("The Server is start: " + s); // 2.阻塞,直到有客户端连接 Socket socket = s.accept(); try { System.out.println("Accept the Client: " + socket); //设置IO句柄 //3.获取输入流准备取客户端发送的数据 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); while (true) { String str = in.readLine(); if (str.equals("byebye")) { break; } System.out.println("In Server reveived the info: " + str); //Writer向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。 //它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入 //PrintWriter(OutputStream out) 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。 //PrintWriter(Writer out) 创建不带自动行刷新的新 PrintWriter。 //这两种构造方法。由于PrintWriter能够实现自动刷新所以又衍生出另两种: //PrintWriter(OutputStream out, boolean autoFlush) //通过现有的 OutputStream 创建新的 PrintWriter。 //PrintWriter(Writer out, boolean autoFlush) 创建新 PrintWriter //http://blog.csdn.net/zsw2zkl/article/details/7209734 //4.接受客户端数据和写数据 out.println(str); } } finally { System.out.println("close the Server socket and the io."); //5.释放资源 socket.close(); s.close(); } }}
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.InetAddress;import java.net.Socket;public class SocketClient { static String clientName = "Mike"; //端口号 public static int portNo = 8082; public static void main(String[] args) throws IOException { // 设置连接地址类,连接本地 InetAddress addr = InetAddress.getByName("localhost"); //1.创建客户端,绑定端口,IP Socket socket = new Socket(addr, portNo); try { System.out.println("socket = " + socket); //2.将服务端的数据打印出来 设置IO句柄 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); //3.向服务端发送数据 PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); out.println("Hello Server,I am " + clientName); String str = in.readLine(); System.out.println(str); out.println("byebye"); } finally { System.out.println("close the Client socket and the io."); //4.释放资源 socket.close(); } }}
0 0
- 基于TCP/IP和UDP的socket编程
- 基于socket的TCP和UDP编程
- 基于socket的TCP和UDP编程
- 基于socket的TCP和UDP编程
- 基于Socket的TCP和UDP编程
- 基于Socket的UDP和TCP编程
- 基于socket的UDP和TCP编程
- 基于socket的TCP和UDP编程
- 基于TCP/IP协议及UDP协议的socket编程
- 基于TCP/IP和UDP协议的socket编程结构解析
- 9.TCP/IP和UDP的socket网络编程
- 基于Socket的UDP和TCP编程介绍
- 基于Socket的UDP和TCP编程介绍
- 转:基于Socket的UDP和TCP编程介绍
- 基于Socket的UDP和TCP编程介绍
- 基于Socket的UDP和TCP编程介绍
- 基于Socket的UDP和TCP编程介绍
- 基于Socket的UDP和TCP编程介绍
- Android Fragment应用实战,使用碎片向ActivityGroup说再见
- Android开发人员不得不收集的代码(持续更新中)
- 安卓常用调试工具
- Android滚动截屏,ScrollView截屏,Listview截屏,Recyclerview截屏
- QT 的信号与槽机制介绍
- 基于TCP/IP和UDP的socket编程
- 视频
- mysql 存储过程
- eval 的作用
- Android可伸缩布局-FlexboxLayout(支持RecyclerView集成)
- Android面试题-为什么需要token
- 中小站做SEO,就是安全第一,安全第一,安全第一
- Android路由表设置(route & DNS)
- Centos 端口转发