客户端和服务器端的通信(Socket编程)

Socket编程

此篇博文的来源

自己一直以为将网络编程这块的知识掌握的还可以了,今天突然有涉及客户端和服务器端的通信的这一块知识的应用,发现自己还不是那么的熟悉这一块,鼓捣了半天,因此就想通过此篇博文来记录一下,也希望能够给更对的朋友们一点帮助

废话不多说,直接上代码

客户端的代码如下

package org.wrh.socketserver;import java.io.FileInputStream;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;{(String[] args) throws Exception {//第一步:创建客户端SocketSocket s=new Socket(“192.168.1.107”,4567);//第二步:读取向服务器端发送的数据文件FileInputStream fis=new FileInputStream(“d:\\100.txt”);//第三步:获取Socket输出流OutputStream os=s.getOutputStream();byte[] buf=new byte[1024];int len;while((len=fis.read(buf))!=-1){os.write(buf, 0, len);}//刷新一下缓冲区的数据os.flush();//告诉服务器,我的数据已经发送完了s.shutdownOutput();//将服务器返回的数据读取出来InputStream is=s.getInputStream();byte[] buf_in=new byte[1024];int len_in=is.read(buf_in);System.out.println(new String(buf_in,0,len_in));fis.close();os.close();is.close();s.close();}}

服务器端的代码如下

package orgimport javaimport javaimport javaimport javaimport javaimport javapublic class MyServer {public static void main(String[] args) throws Exception {//第一步:建立服务器端SocketServerSocket ss=new ServerSocket(4567);//第二步:获取客户端Socket socket=ss.accept();/** 获取客户端的ip地址* */String ip=socket.getInetAddress().getHostAddress();System.out.println(ip+”….connected”);//第三步:获取Socket的输入流,对客户端发送来的数据进行读取InputStream is=socket.getInputStream();/**读取数据,并 将数据写入到文件中* */File dir=new File(“d:\\wu”);if(!dir.exists()){dir.mkdirs();}File file=new File(dir,ip+”.txt”);FileOutputStream fos=new FileOutputStream(file);byte[] buf=new byte[1024];int len=0;while((len=is.read(buf))!=-1){fos.write(buf, 0, len);}fos.flush();//给客户端一个反馈信息OutputStream os=socket.getOutputStream();os.write(“收到数据”.getBytes());//下面为关闭各种要关闭的资源fos.close();is.close();os.close();socket.close();ss.close();}}

上面的代码的注释写的比较详细,,这里就不在解释

总结

这里要提醒大家的是,虽然上面的代码的流程很简单,但是如果大家不动手敲代码的话,是不太容易熟练掌握的,就像以前的我一样以为自己掌握了,最后当自己要应用的时候发现还是没有掌握

总之:动手实践、动手实践、动手实践、动手实践,重要的话说四遍,说四遍,哈哈哈

我也相信爱可以排除万难;只是,万难之后,又有万难。这是我更相信的。

客户端和服务器端的通信(Socket编程)

相关文章:

你感兴趣的文章:

标签云: