Java网络编程笔记1
2018-06-18 02:43:38来源:未知 阅读 ()
输出流
网络程序所作的很大一部分工作都是简单的输入和输出,Java的I/O建立于流之上。输入流读取数据,输出流写入数据。
Java的基本输出流类是java.io.OutputStream。
OutputStream的基本方法是write(int b)。该方法接收一个0~255之间的整数作为参数,将对应字节写入到输出流中。当使用write(int b)将int写入一个网络连接时,如果将一个超出0~255的int传入write(int b),将写入这个数的最低字节,其他3字节将被忽略。
字符生成器协议定义了一个发出ASCII文本的服务器。这个协议最流行的变体是发送72个字符的文本行,其中包含可显示的ASCII字符,是33~126之间的字符,不包含空白符合控制字符。
ASCII是一个7位字符集,所以每个字符都可作为单字节发送。因此,这个协议可以直接使用基本write()方法实现。
1 public static void generateCharacters(OutputStream out) throws IOException 2 { 3 int firstPrintableCharacter = 33; 4 int numberOfPrintbableCharacters = 94; 5 int numberOfCharactersPerLine = 72; 6 int start = firstPrintableCharacter; 7 while(true) 8 { 9 for(int i =start;i<start+numberOfCharactersPerLine;i++) 10 { 11 out.write(((i-firstPrintableCharacter)%numberOfCharacers)+firstPrintbaleCharacter); 12 } 13 out.write('\r'); 14 out.write('\n'); 15 start = ((start+1)-firstPrintableCharacter)%numberOfPrintableCharacters+firstPrintableCharacter; 16 } 17 }
一次写入1个字节效率不高。大多数TCP/IP实现都会在某种程度上缓存数据,它们在内存中积累数据字节,只有积累到一定量的数据后,或者经过一定的时间后,才将所积累的数据发动到最终目的地。下面将整行打包在一个字节数组中,一次发送一行。
1 public static void generateCharacters(OutputStream out) throws IOException 2 { 3 int firstPrintableCharacter = 33; 4 int numberOfPrintableCharacters = 94; 5 int numberOfCharactersPerLine = 72; 6 7 int start = firstPrintableCharacter; 8 byte[] line = new byte[numberOfCharactersPerLine+2]; 9 10 while(true) 11 { 12 for(int i =start;i<start+numberOfCharactersPerLine;i++) 13 { 14 line[i-start] = (byte)((i-firstPrintableCharacter)%numberOfPrintableCharacters+firstPrintableCharacter); 15 } 16 line[72] = (byte)'\r'; 17 line[73] = (byte)'\n'; 18 out.write(line); 19 start = ((start + 1)-firstPrintableCharacter)%numberOfPrintableCharacters+firstPrintableCharacter; 20 } 21 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Idea 快捷键大全【转】
下一篇:简述Shiro验证过程
- 国外程序员整理的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