(1)使用TCP编写客服端和服务端
此demo的要先启动服务端,否则报错,因为TCP是可靠协议,所以没有对应的服务端时会报错
一.编写TCP协议服务端
1 package demo.soket.tcp; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.net.ServerSocket; 6 import java.net.Socket; 7 8 //TCP协议服务端 9 public class Server { 10 public static void main(String[] args) { 11 /** 12 * 1.创建服务端ServerSocket对象 13 * 2.监听socket连接 14 * 3.通过返回的socket对象来获取io流里面的数据 15 * 4.打印数据 16 */ 17 //1. 18 ServerSocket server=null; 19 try { 20 server=new ServerSocket(10086); 21 //2. 22 Socket socket=server.accept(); 23 //3. 24 InputStream in=socket.getInputStream(); 25 byte[] b=new byte[1024]; 26 int len=0; 27 while((len=in.read(b))!=-1) { 28 System.out.println(new String(b,0,len)); 29 } 30 31 } catch (IOException e) { 32 e.printStackTrace(); 33 } 34 } 35 }
二.编写TCP协议客服端
1 package demo.soket.tcp; 2 3 import java.io.IOException; 4 import java.io.OutputStream; 5 import java.net.Socket; 6 import java.net.UnknownHostException; 7 8 /** 9 * TCP特点: 10 * 1.建立连接,形成传输数据的通道 11 * 2.在链接中进行大量数据传输 12 * 3.通过三次握完成连接,是可靠协议,所以没有对应的服务端时会报错 13 * 4.必建立连接,效率会稍低些 14 * @author Administrator 15 * 16 */ 17 public class Client { 18 public static void main(String[] args) { 19 /** 20 * 1.创建一个客服端的socket对象 21 * 2.建立连接 22 * 3.通过io流在管道里面传输数据 23 * 写数据:输出流 getOutputStream() 24 * 接收数据:输入流 getInputStream() 25 * 4.关闭socket 26 */ 27 //1.|2. 28 Socket client=null; 29 try { 30 client=new Socket("192.168.95.2",10086); 31 //3. 32 OutputStream os=client.getOutputStream(); 33 os.write("TCP第一个客户端发送信息".getBytes()); 34 } catch (UnknownHostException e) { 35 e.printStackTrace(); 36 } catch (IOException e) { 37 e.printStackTrace(); 38 }finally { 39 //4. 40 if(client!=null) { 41 try { 42 client.close(); 43 } catch (IOException e) { 44 e.printStackTrace(); 45 } 46 } 47 } 48 } 49 } 50
三 .demo运行
作者:皓月无边*半步青莲
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。