当前位置: 首页 > news >正文

网站建站网站咸阳网站建设推广

网站建站网站,咸阳网站建设推广,余杭建设局网站,网站建设只有20%的利润TCP实现TCP协议需要在双方之间建立连接#xff0c;通过输入输出流来进行数据的交换#xff0c;建立需要通过三次握手#xff0c;断开需要四次挥手#xff0c;保证了数据的完整性#xff0c;但传输效率也会相应的降低。简单的TCP实现//服务端public class TcpServer {publi…TCP实现TCP协议需要在双方之间建立连接通过输入输出流来进行数据的交换建立需要通过三次握手断开需要四次挥手保证了数据的完整性但传输效率也会相应的降低。简单的TCP实现//服务端public class TcpServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(8886); // 建立服务端ip为本机ip,端口为8886Socket accept serverSocket.accept(); // 监听客户端的连接一旦有客户端连接则会返回客户端对应的acceptInputStream in accept.getInputStream(); //获取到客户端的输出流byte b[] new byte[1024];int len in.read(b);System.out.println(接受到客户端数据,返回数据new String(b,0,len));OutputStream out accept.getOutputStream(); // 给客户端发送消息out.write(服务端已经接受.getBytes());serverSocket.close();}}// 客户端public class TcpClient {public static void main(String[] args) throws IOException {Socket socket new Socket(127.0.0.1, 8886); // 通过Socket来建立和服务端的连接OutputStream out socket.getOutputStream(); // 获取输出流(客户端输出流即向服务端输出信息)out.write(hello tcp Server.getBytes()); // 输出信息InputStream in socket.getInputStream(); // 接受服务端的消息byte b[] new byte[1024];int len in.read(b);System.out.println(接受到服务器消息 new String(b,0,len)); // 输出out.write(返回的的数据已经收到 .getBytes()); // 向服务器返回消息socket.close();}}改进服务端启用多线程来接受客户端的数据// serverpublic static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(8886); // 建立服务端ip为本机ip,端口为8886int i4;while(i2){Socket accept serverSocket.accept(); // 监听客户端的连接一旦有客户端连接则会返回客户端对应的acceptServerThread st new ServerThread(accept); // 启动线程Thread th new Thread(st);th.start();}serverSocket.close();}// threadpublic class ServerThread implements Runnable {private Socket accept;public ServerThread(Socket s) {this.accept s;}public void run(){InputStream in;try {in accept.getInputStream();byte b[] new byte[1024];int len in.read(b);System.out.println(接受到客户端数据,返回数据 new String(b, 0, len));OutputStream out accept.getOutputStream(); // 给客户端发送消息out.write(服务端已经接受.getBytes());} catch (IOException e) {e.printStackTrace();}}}传递图片// 服务端public class Server {public static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(5555);Socket ss serverSocket.accept();BufferedInputStream br new BufferedInputStream(ss.getInputStream());BufferedOutputStream bw new BufferedOutputStream(new FileOutputStream(copy.jpg)); // 写出文件流byte b[] new byte[1024];int len 0;while ((len br.read(b)) ! -1) { // 写出文件bw.write(b, 0, len);bw.flush(); // 别忘了刷新要不然最后一块缓冲区字符串会缺失}BufferedWriter bw2 new BufferedWriter(new OutputStreamWriter(ss.getOutputStream())); // 输出bw2.write(图片传输成功);bw2.flush();bw.close();ss.close();}}// 客户端public class Client {public static void main(String[] args) throws UnknownHostException, IOException {Socket socket new Socket(127.0.0.1, 5555);BufferedInputStream in new BufferedInputStream(new FileInputStream(c.jpg));BufferedOutputStream out new BufferedOutputStream(socket.getOutputStream());byte b[] new byte[1024];int len 0;while ((len in.read(b)) ! -1) {out.write(b, 0, len);out.flush(); // 刷新缓冲区 要不然最后一块缓冲区字符串会缺失}socket.shutdownOutput(); // 关闭流以后Server段才会接收道结束字符结束接受BufferedReader br new BufferedReader(new InputStreamReader(socket.getInputStream()));String line;while ((line br.readLine()) ! null) {System.out.println(line);}in.close();socket.close();}}UDP实现UDP是将数据打成数据包向对方发送只关系是否发送成功而不关心是否接收成功传输速度快但是可靠性低。udp代码实现// 发送端public class SendDemo {public static void main(String[] args) throws IOException {DatagramSocket ds new DatagramSocket(); // 此类表示用来发送和接收数据报包的套接字。BufferedReader br new BufferedReader(new InputStreamReader(System.in)); // 键盘输入String line null;while ((line br.readLine()) ! null) {byte[] bytes line.getBytes();DatagramPacket dp new DatagramPacket(bytes, bytes.length, InetAddress.getByName(127.0.0.1), 10005); // 数据包对象ds.send(dp);if (886.equals(line)) { // 当输入886时结束发送break;}}ds.close();}}// 接收端public class ReciveDemo {public static void main(String[] args) throws IOException {DatagramSocket ds new DatagramSocket(10005); // 建立服务端byte bytes[] new byte[1024];DatagramPacket dp new DatagramPacket(bytes, bytes.length); // 建立数据包对象while (true) {ds.receive(dp); // 接受数据包byte[] data dp.getData(); // 获取数据String str new String(data, 0, dp.getLength());if (886.equals(str)) {break;}System.out.println(str);}ds.close();}}
http://www.yutouwan.com/news/158768/

相关文章:

  • 长沙手机网站制作南京网络推广公司排名
  • 成都市网站建设费用及企业网上写文章用什么软件
  • 做宠物网站心得网站建立
  • 怎么做北京赛车网站新乡个人网站建设
  • 伊犁网站制作网站后台图片传不上去怎么办
  • 中信建设有限责任公司世界排名宝应seo
  • 网站开发招标文件范本做食品的采购员常用网站
  • 承德网站推广适合注册公司的名字大全
  • 个人网站可以备案了吗苏州seo推广优化
  • 网站建设方案进行工期安排移动互联网平台有哪些
  • 微信网站结构嘉定网站设计怎么样
  • 网站 备案网站python做的网站漏洞
  • 山东省城乡住房建设厅网站个人缴纳养老保险
  • 平台网站开发的税率诸暨哪些公司可以制作网站
  • 如何做网站关键词排名网站建设都会用到哪些建站工具
  • 安庆网站建设公司教师做网站赚钱
  • 在天极网做网站有效果吗网络营销现状分析
  • 网站的风格设计有哪些苏州定制型网站建设
  • 英文网站制作公司哪家好淄博做网站公司
  • 青岛网站建设工作室做冻品的网站
  • WordPress网站小程序做外贸需要哪些网站有哪些
  • 工商局网上注册公司seo智能优化公司
  • 高新公司网站建设电话杭州企业网站搭建
  • 英文网站外链查询网站开发合同受托方
  • 制作简历模板网站先做网站还是先备案
  • 免费企业网站模板 phpwordpress原创主题简单
  • 钦州网站建网站建设好的公司
  • 淮北市网站建设wordpress单击右键提示
  • 做一个营销型网站有哪些内容游戏网页设计素材
  • 龙岩做网站多少钱seo外链推广工具下载