Java分享笔记:Java网络编程--TCP程序设计
2018-08-10 11:15:26来源:博客园 阅读 ()
[1] TCP编程的主要步骤
客户端(client):
1.创建Socket对象,构造方法的形参列表中需要InetAddress类对象和int型值,用来指明对方的IP地址和端口号。
2.通过Socket对象的getOutputStream()方法返回OutputStream抽象类子类的一个对象,用来发送输出流。
3.通过输出流的write方法输出具体的信息。
4.关闭相应的流和Socket对象。
服务端(server):
1.创建ServerSocket类的对象,在构造器中指明端口号。
2.调用ServerSocket类对象的accept()方法,返回一个Socket类的实例。
3.通过Socket实例的getInputStream()方法获取一个输入流,用来接收来自客户端的信息。
4.利用输入流接收数据,并处理数据。
5.关闭相应的流、Socket对象、ServerSocket对象。
[2] Java源程序 ( 注意:在测试时先开启服务端方法server(),再开启客户端方法client() )
1 package pack01; 2 3 import java.io.*; 4 import java.net.*; 5 import org.junit.Test; 6 7 public class TestNet1 { 8 9 @Test //***********************客户端测试方法*********************** 10 public void client() { 11 12 Socket socket = null; //建立客户端网络套接字 13 OutputStream socket_os = null; //客户端输出流 14 15 try { 16 //1.获取本机环路地址 17 InetAddress inet = InetAddress.getByName("127.0.0.1"); 18 19 //2.创建Socket对象 20 socket = new Socket(inet, 10000); 21 22 //3.获取输出流 23 socket_os = socket.getOutputStream(); 24 25 //4.客户端输出信息 26 socket_os.write( "客户端发送信息".getBytes() ); 27 28 } catch (IOException e) { 29 e.printStackTrace(); 30 31 } finally { 32 33 try { //关闭输出流 34 socket_os.close(); 35 } catch (IOException e) { 36 e.printStackTrace(); 37 } 38 39 try { //关闭客户端套接字 40 socket.close(); 41 } catch (IOException e) { 42 e.printStackTrace(); 43 } 44 } 45 } 46 47 @Test //***********************服务端测试方法*********************** 48 public void server() { 49 50 ServerSocket serSocket = null; 51 Socket socket = null; 52 InputStream socket_is = null; 53 54 try { 55 serSocket = new ServerSocket(10000); 56 socket = serSocket.accept(); //获取服务端套接字 57 socket_is = socket.getInputStream(); //获取输入流 58 59 byte[] b = new byte[100]; //用于接收信息的字节数组 60 int len; 61 StringBuffer sb = new StringBuffer(); 62 63 while( (len = socket_is.read(b)) != -1 ) { 64 sb.append( new String(b,0,len) ); //将字节信息连续保存在buffer数组里 65 } 66 System.out.println("来自" + socket.getInetAddress().getHostName() + "的信息:"); 67 System.out.println( sb ); 68 69 } catch (IOException e) { 70 e.printStackTrace(); 71 72 } finally { 73 74 try { //关闭输入流 75 socket_is.close(); 76 } catch (IOException e) { 77 e.printStackTrace(); 78 } 79 80 try { //关闭Socket对象 81 socket.close(); 82 } catch (IOException e) { 83 e.printStackTrace(); 84 } 85 86 try { //关闭ServerSocket对象 87 serSocket.close(); 88 } catch (IOException e) { 89 e.printStackTrace(); 90 } 91 } 92 } 93 94 }
注:希望与各位读者相互交流,共同学习进步。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash