Java基础之Socket编程
来源:互联网 发布:marginnote windows版 编辑:程序博客网 时间:2024/06/05 00:22
1. Socket的作用
用于计算机与计算机之前通过网络传输数据通讯-->Socket
2. 基本网络知识
IP:计算机在网络的唯一标示,通过IP地址就可以找到一台计算机
端口:操作系统上软件的唯一标记。80(Web默认端口),3306(MySQL默认端口),1024以前的端口都被系统占用了。端口的范围:1~65535。定义端口的时候最好使用1024以后的端口。
协议:UDP 和 TCP
2.1 UDP 和 TCP的区别
UDP:无连接,速度快。不保证数据的完整性。
TCP:通过三次握手机制,形成数据传输通道(字节流),速度慢。保证数据的完整性,如果丢包,会重发!
3. Socket编程示例:
3.1 服务端代码:(需求:发一段话到客户端,然后接受从客户端发回来的数据打印)
try {// 1.创建服务器端Socket对象(服务端IP:192.168.10.1)ServerSocket ss = new ServerSocket(8888);System.out.println("服务器已经启动,正在监听8888端口...");// 2.不断接收客户端的请求while (true) {final Socket socket = ss.accept();System.out.println("接收客户端:"+socket);//每个客户端的处理启动一个新的线程new Thread(){public void run(){try{// 获取客户端(访问者)的iP地址String ip = socket.getInetAddress().getHostAddress();// 3.构建数据发送的通道BufferedWriter br = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));// 3.1 构建数据接收通道BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));// 4.发送数据br.write("你们好,请发你们的名字过来\r\n");br.flush();//手动刷新缓存区,发送数据System.out.println("来自于" + ip + ",说:" + reader.readLine());//5.关闭资源br.close();reader.close();socket.close();}catch(Exception e){throw new RuntimeException(e);}}}.start();}} catch (Exception e) {throw new RuntimeException(e);}
3.2 客户端代码:(接收服务端发出的数据,打印,然后把自己的名字发送到服务端。 服务端IP:192.168.10.1, 端口:8888)
// 1.创建客户端的Socket对象try {Socket socket = new Socket("192.168.10.1", 8888);// 2.构建和服务器端的数据接收通道BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));// 构建和服务器端的数据发送通道BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));// 3.接收服务器发送的数据System.out.println(reader.readLine());// 4.发送数据到服务器端writer.write("我的名字eric");writer.newLine();writer.flush();//手动刷新//5.关闭资源reader.close();socket.close();} catch (Exception e) {throw new RuntimeException(e);}
0 0
- Java基础之Socket编程
- Java基础(14):网络编程之socket
- java Socket编程基础
- Java基础---Socket编程
- Java Socket编程基础
- java Socket编程基础
- java socket编程基础
- java socket 编程基础
- Java Socket 基础编程
- java 基础之Socket
- java之socket编程
- java之socket编程
- JAVA之Socket编程
- Java之socket编程
- JAVA之Socket编程
- java之socket编程
- java网络socket编程(一)之基础简介
- socket编程之基础学习
- android6.0以上版本蓝牙4.0开发
- JAVA RGB转CMYK 源码(支持格式转换)
- Mysql中的sql server 与mysql 与orcle与acess与sql与mssql大体了解
- 【Linux】僵尸进程和孤儿进程
- LightOJ 1282 Leading and Trailing
- Java基础之Socket编程
- php中$this->是什么意思
- 如何在 BroadcastReceiver 中执行耗时操作?
- xib中User Defined Runtime Attributes使用
- 【Python-matplotlib】subplot2grid()函数的简单示例
- CPP复习笔记 1
- idea2016_64bit 控制台输出中文乱码
- HttpClient+Jsoup 抓取网页信息(网易贵金属为例)
- webview无法正常加载和点击的bug