网络编程-TCP传输 ╰半橙微兮° 2022-05-31 14:14 158阅读 0赞 ## **1.客户端给服务端发送文本,服务端会将文本转成大写在返回给客户端** ## public class Testtwo { @Test public void bTest(){//客户端 Socket socket=null; OutputStream os=null; FileInputStream fis=null; //发送服务端数据 try { socket=new Socket(InetAddress.getByName("127.0.0.1"), 8989);//创建连接地址为127.0.0.1,端口为8989 os=socket.getOutputStream();//获取到输出对象 fis=new FileInputStream(new File("2.txt"));//取到文件 int len; byte [] b=new byte[1024]; while((len=fis.read(b))!=-1){//对文件进行读取 os.write(b, 0, len);//将数据发送到服务器 String ssString=new String(b, 0, len); System.out.print(ssString); } socket.shutdownOutput();//向系统说明数据发送完毕 //接收服务端数据 InputStream is=socket.getInputStream();//获取到服务器发的数据对象 int len1; byte [] b1=new byte[1024]; while((len1=is.read(b1))!=-1){ String ssString=new String(b1, 0, len1);//类型转化 System.out.print(ssString); } } catch (Exception e) { // TODO: handle exception } finally { try { os.close(); fis.close(); socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Test public void sTest(){ ServerSocket ss=null; Socket socket=null; InputStream is=null; OutputStream os=null; try { ss=new ServerSocket(8989);//绑定服务器端口 socket=ss.accept();//阻塞,直到接收到客户端的Socket连接 is=socket.getInputStream();//获取到输入流对象 os=socket.getOutputStream();//获取到输出流对象 int len; byte [] bs=new byte[1024]; while((len=is.read(bs))!=-1){//对输入流进行数据读取和处理 String ssString=new String(bs,0,len); System.out.println(ssString); char []cstr=ssString.toCharArray(); for(int i=0;i<cstr.length;i++){ if(cstr[i]>='a'&&cstr[i]<='z'){ cstr[i]=(char) ((int)cstr[i]-32); } } System.out.println(String.valueOf(cstr)); os.write(String.valueOf(cstr).getBytes());//发送到客户端 } //socket.shutdownInput(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ try { os.close(); is.close(); socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } ## 2.服务端读取图片并发送给客户端,客户端保存图片到本地 ## public class Testone { @Test public void cTest(){ Socket socket=null; InputStream is=null; FileOutputStream fos=null; try { socket=new Socket(InetAddress.getByName("127.0.0.1"), 8989); is=socket.getInputStream(); fos=new FileOutputStream(new File("1.jpg")); int len; byte [] b=new byte[1024]; while((len=is.read(b))!=-1){ fos.write(b, 0, len); } System.out.println("成功保存文件"); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { fos.close(); is.close(); socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Test public void serverTest() { ServerSocket ss=null; Socket socket=null; OutputStream os=null; FileInputStream fis=null; try { ss = new ServerSocket(8989); socket=ss.accept(); os=socket.getOutputStream(); fis=new FileInputStream(new File("2.jpg")); int len; byte [] b=new byte[1024]; while((len=fis.read(b))!=-1){ os.write(b,0,len); } socket.shutdownInput(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { fis.close(); os.close(); socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
还没有评论,来说两句吧...