Java socket
来源:互联网 发布:飞客数据恢复 编辑:程序博客网 时间:2024/06/07 20:31
socket套用字:
1>面向连接的socket通信协议TCP
2>面向无连接的socket通信协议UDP
socket由IP地址和端口号唯一确定。
socket的生命周期:
1>打开socket
2>使用socket收发数据
3>关闭socket
TCP通信过程:
1>server(服务器)端Listen(监听)指定的某个端口是否有连接请求
2>client(客户)端向server端口发出connect请求
3>server端向client端发回accept消息
例题:用socket实现客户端和服务器端的通信,要求客户发送数据后能够回显相同的数据。
第一步:首先创建一个名为server.java的服务器端代码:
package java_test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
class Server {
public static void main(String[] args) { // TODO Auto-generated method stub BufferedReader br=null; PrintWriter pw=null; try { ServerSocket server=new ServerSocket(2000); Socket socket=server.accept();//获取输入流 br=new BufferedReader(new InputStreamReader(socket.getInputStream()));//获取输出流 pw=new PrintWriter(socket.getOutputStream(),true); String s=br.readLine();//获取接受的数据 pw.println(s);//发送相同的数据给客户端 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try{ br.close(); pw.close(); }catch(Exception e){ }}}
}
第二步:创建一个client.java的客户端程序:
package java_test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
class Client {
public static void main(String[] args) { // TODO Auto-generated method stub BufferedReader br=null; PrintWriter pw=null; try { Socket socket=new Socket("localhost",2000);//获取输入流和输出流 br=new BufferedReader(new InputStreamReader(socket.getInputStream())); pw=new PrintWriter(socket.getOutputStream(),true);//向服务器发送数据 pw.println("Hello"); String s=null; while(true){ s=br.readLine(); if(s!=null) break; } System.out.println(s); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try{ br.close(); pw.close(); }catch(Exception e){ } } }}
第三步:最后启动服务器端程序,然后运行客户端程序,客户端将会把从服务器端转发过来的“hello”打印出来。
- java socket (-) 简单socket
- Java Socket
- java-socket
- java socket
- Java Socket
- JAVA Socket
- Java Socket
- socket(java)
- Java Socket
- Java socket
- java socket
- java socket
- Socket(java)
- Java socket
- Java Socket
- java socket
- Java Socket
- java socket
- "Android"性能优化措施之面试必问点-<include>,<merge>,<ViewStub>
- linux && git 命令备忘
- RuntimeException与CheckedException差异
- cisco私有vlan技术
- js判断一个元素是否在数组内
- Java socket
- 大数据天地
- ActiveAndroid 数据库
- 深入理解HTTP协议
- 大地母亲在忽悠着你
- kafka
- openwrt安装drcom
- android中的bitmap
- Android手机自带内部存储路径的获取