java学习笔记之Socket
来源:互联网 发布:手机游戏编程培训 编辑:程序博客网 时间:2024/06/06 04:35
1 Socket 客户端类
通过 Socket client = new Socket (“主机名”,8909); 来建立客户端的请求 ,Socket类的构造函数有两个参数,第一个参数是欲连接到的Server计算机的主机地址,第二个参数是该Server机上提供服务的端口号。
Socket对象建立成功之后,就可以在Client和Server之间建立一个连接,并通过这个连接在两个端点之间传递数据。利用Socket类的方法getOutputStream()和getInputStream()分别获得向Socket读写数据的输入/输出流,最后将从Server端读取的数据重新返还到Server端。
当Server和Client端的通信结束时,可以调用Socket类的close()方法关闭Socket,拆除连接。
ServerSocket 一般仅用于设置端口号和监听,真正进行通信的是服务器端的Socket与客户端的Socket,在ServerSocket 进行accept之后,就将主动权转让了。
2 ServerSocket 服务端类
创建一个ServerSocket类,同时在运行该语句的计算机的指定端口处建立一个监听服务,如:
ServerSocket MyListener=new ServerSocket(600);
这里指定提供监听服务的端口是600,一台计算机可以同时提供多个服务,这些不同的服务之间通过端口号来区别,不同的端口号上提供不同的服务。为了随时监听可能的Client请求,执行如下的语句:
Socket LinkSocket=MyListener.accept();
该语句调用了ServerSocket对象的accept()方法,这个方法的执行将使Server端的程序处于等待状态,程序将一直阻塞直到捕捉到一个来自Client端的请求,并返回一个用于与该Client通信的Socket对象Link-Socket。此后Server程序只要向这个Socket对象读写数据,就可以实现向远端的Client读写数据。
代码说明:
服务器端代码:import java.io.IOException;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class Myserver {//建立ServerSocket,并设置其端口号 private ServerSocket ss; public static final int port=8962; public Myserver(){ try{ ss=new ServerSocket(port); }catch(IOException e){ e.printStackTrace(); } } public void setConnection() throws IOException{ //建立服务器端的Socket Socket s; OutputStream os; try{ //ServerSocke.accept()t返回一个Socket对象 s=ss.accept(); os=s.getOutputStream(); os.write("hello".getBytes()); os.close(); s.close(); }catch(IOException e){ e.printStackTrace(); } } public static void main(String[] args) throws IOException { Myserver ms=new Myserver(); ms.setConnection();}}客户端代码:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.Socket;public class Myclient { public static final String IP="172.16.221.134"; public static final int port=8962; private Socket s; public Myclient() throws IOException{try{ s=new Socket(IP,port);}catch(IOException e){ e.printStackTrace();} } public void setConnection()throws IOException{ InputStream is; try{ is=s.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); System.out.println(br.readLine()); }catch(IOException e){ e.printStackTrace(); } }public static void main(String args[]) throws IOException{ Myclient mc=new Myclient(); mc.setConnection();}}
- java学习笔记之Socket
- JAVA学习笔记之(Socket)
- java socket学习笔记
- Java Socket学习笔记
- java socket学习笔记
- java-socket学习笔记
- java学习之socket
- JAVA学习笔记(网络编程 之 socket)
- android学习笔记之Socket
- 学习笔记之socket编程
- ActionScript之Socket学习笔记
- C#学习笔记之Socket
- JAVA socket编程学习笔记
- JAVA学习笔记- Socket编程
- java socket编程学习笔记
- java socket通信学习笔记
- java socket 编程学习笔记
- JAVA学习总结之Socket
- Glide库的封装使用
- Making Quick macroScripts in 3DS Max
- 文件上传漏洞常见利用方式分析
- SHELL编程之执行过程
- PHP学习笔记-数组
- java学习笔记之Socket
- java中interrupt、join、sleep、notify、notifyAll、wait详解
- Android 刷机,获取root
- 安装了VS2015之后新建项目出错
- mysql对查询结果排序
- 【Java并发编程】并发编程大合集
- LinearLayoutCompat分割线效果源码分析
- Flask学习-设备管理系统4:修改设备信息
- 运算符重载