一.建立客户端和服务器端的连接。
方法分2步:
1.在客户端创建Socket对象,用来发送连接请求
2.在服务器端穿件ServerSocket对象,用来接收请求。
//客户端
public class socket1 {Socket socket;public static void main(String[] args) {new socket1().setUpInternetWoring();}void setUpInternetWoring(){try {//建立Socket对象设置要连接的IP地址和客户端的端口号socket = new Socket("127.0.0.1",888);} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {socket.close(); //要关闭} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
//服务器端
public class server1{public static void main(String[] args) {try {ServerSocket server = new ServerSocket(888);//建立监听对象sever 监听端口号888Socket LinkSocket = server.accept(); //接收请求信息 并返回请求对象} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{}}
}
二.实现客户端和服务器端的通信。
方法很简单:
对客户端而言,一方面要接收信息,另一方面要发送信息。
对服务器端而言,和客户端是一样的。
为了实现这两个功能,用到了I/O流。使用socket是两个函数:
1.getInputStream(); 从建立的通道中读取信息
2.getOutputStream(); 向建立的通道中写入信息
具体方法是:
1:建立BufferedReader的对象来存储通道中读取的信息
2:建立PrintWriter的对象,通过println()方法向通道中写入信息
客户端通信伪代码:
Socket socket;
BufferedReader reader;
PrintWriter writer;
void setUpInternetWoring(){try {//建立Socket对象设置要连接的IP地址和客户端的端口号socket = new Socket("127.0.0.1",888);System.out.println("连接成功");//读信息reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));String message = null;while((message = reader.readLine())!=null){System.out.println(message);//读取到的信息}//写信息 服务器端通过reader读到的信息就是这里发送的信息writer = new PrintWriter(socket.getOutputStream());writer.println("要发送的信息,怎么输入的都行");writer.flush();//刷新,让服务器端马上接收到信息} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {//用完要关闭,避免资源浪费reader.close();writer.close();socket.close(); //要关闭} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
服务器端通信伪代码:
BufferedReader reader;
PrintWriter writer;
Socket LinkSocket;
void setUpNetworking(){try {ServerSocket server = new ServerSocket(888);//建立监听对象sever 监听端口号888LinkSocket = server.accept(); //接收请求信息 并返回请求对象//读信息reader = new BufferedReader(new InputStreamReader(LinkSocket.getInputStream()));String message = null;while((message=reader.readLine())!=null){System.out.println(message);}//写信息writer = new PrintWriter(LinkSocket.getOutputStream());writer.println("要写入 的信息");writer.flush();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {reader.close();writer.close();LinkSocket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}