📄 sender_01.java
字号:
package ece544.p1.zbwu;import java.io.IOException;import java.io.InputStream;import ece544.p1.ISender;import edu.rutgers.winlab.labloma.net.*;/** * Zhibin Wu, * zhibinwu@winlab.rutgers.edu * * Implementation of the IReceiver */public class Sender implements ISender{ /** * define private variables here * sending buffer is 1024 bytes * assgin the port to local defaultport variable */ private INetworkPort defaultport; private byte[] in; public Sender( INetworkPort port ) { defaultport = port ; in = new byte[1024]; } /** * @see ece544.p1.ISender#send(InputStream, IAddress) * * The method is simple, reading 1020 bytes from the inputstream * to the buffer in[1024] * initilzie last 4 bytes as buffer as "0000", then fill * the 4 bytes as length indicator, becasue the length is at most * 1020, thus, 4 character is enough * Then, use the "send" functin provide by port to sending those * 1024-size packets out of the networkport. * */ public void send( InputStream stream, IAddress addr ) throws IOException { int i; int j; int len_str; while ( (j=stream.read(in,0,1020))!= -1) { String s= Integer.toString (j); len_str = s.length(); byte[] len = s.getBytes(); for ( i= 1020; i< 1024; i++ ) in[i] = '0'; for ( i= 0; i< len_str; i++) in [1024- len_str + i] = len[i]; defaultport.send (addr, in); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -