Java网络编程下之Socket客户端编程
2/10/2017来源:ASP.NET技巧人气:1281
该篇是java网络编程下篇-socket客户端编程
客户端的编写步骤和客户端类似,步骤如下:
1.通过ip地址和端口号实例化socket,请求连接服务器
2.获得socket上的流进行读写操作
3.把流封装到BufferedReader/PRintWriter的实例
4.对socket进行读写
5.关闭打开的流
代码部分:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Client { public static void main(String[] args) { PrintStream out=null; BufferedReader reader=null;//缓冲流 try { //客户端建立连接,IP地址是本地,端口号:10000 Socket s = new Socket("localhost", 10000); //建立输出流,目的是为了向服务器端写数据 out = new PrintStream(s.getOutputStream()); //建立输入流,目的是为了向服务器端读数据 reader = new BufferedReader(new InputStreamReader(s.getInputStream())); //从键盘写数据 Scanner c = new Scanner(System.in); while(true){ System.out.println("请输入内容(exit:停止)"); String str=c.nextLine(); //写数据 out.println(str); //读数据 String line=reader.readLine(); System.out.println(line); } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { reader.close(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } 注意:1.在服务器端,一定要先读后写(因为服务端是监听状态),顺序不能颠倒
2.在客户端,一定要先写后读,同样顺序也不能颠倒
3.再练中,在关闭服务器端时,要关闭彻底,要不会出现意想不到的错误
最新文章推荐