JAVA TCP协议的发送接收

原创 2007年09月19日 09:27:00

import java.net.*;
import java.io.*;
import java.util.*;

public class Tcp{

 public void receiver(int port)
    {
  ServerSocket serveSocket = null;
  Socket clientSocket = null;
  BufferedInputStream input = null;                                              
  byte[] buffer = new byte[1024];                                                    //平台生成的XML串
        ByteArrayOutputStream streamXML = new ByteArrayOutputStream();                    //请求数据存放对象

  try{
   serveSocket = new ServerSocket(port);                                           //在指定端口建立一个连接
   System.out.println("开始监听:");
   while (true){
    clientSocket = serveSocket.accept();                                         //收到一个信息,得到一个clientSocket
    InputStream inputStream = clientSocket.getInputStream();                     //数据缓冲区
             int count = 0;                                                            //每个缓冲区的实际数据长度
       try {
        input = new BufferedInputStream(inputStream);
        while ((count = input.read(buffer)) != -1){
         streamXML.write(buffer, 0, count);
        } 
       }catch (Exception e){
        e.printStackTrace();
       }finally{
        if (input != null){
         try {
          input.close();
         }catch (Exception f){
          f.printStackTrace();
         }
        }
       }

       System.out.println("收到如下信息:  " + streamXML.toString());
       streamXML.reset();
       inputStream.close();
    clientSocket.close();
   }
  }catch (Exception e){
   e.printStackTrace();
  }
    }
 
 public void send(String host,int port){
  
  byte[] buffer = new byte[1024];
  try{
  Socket socket = new Socket("192.168.61.146",20000);
  OutputStream outputStream = socket.getOutputStream();
  buffer = ("<package><head><requesttype>001</requesttype><user>PICC</user><code>12345678</code></head>"
      + "<body><policyno>00PICC1234567890</policyno><startdate>20070101</startdate><insured>zhangsan</insured></body>"
      + "<third><driverlist>"
      + "<driver><name>li1</name><age>20</age></driver>"
      + "</driverlist><date>19990909</date></third></package>").getBytes();
        outputStream.write(buffer);
        outputStream.flush();
        outputStream.close();
        socket.close();
  }catch (Exception e){
   e.printStackTrace();
  }
 }
 
 public static void main(String[] args) throws Exception {
  Tcp tcp = new Tcp();
  tcp.receiver(20000);
  //tcp.send("",20000);
 }
}
 

Java中通过TCP协议发送和接收数据-Socket编程

TCP TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。 TCP通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端...
  • kris234seth
  • kris234seth
  • 2016年02月18日 15:14
  • 11613

C# Tcp协议收发数据(TCPClient发,Socket收)

原文地址:https://my.oschina.net/Tsybius2014/blog/349573 摘要: C# Tcp协议收发数据(TCPClient发,Socket收) 运行这个程...
  • qq798833488
  • qq798833488
  • 2016年12月07日 09:06
  • 3618

Java利用TCP协议发送文件(四)--完整源代码

完整的使用TCP进行wav文件发送的代码可以在我的github上面下载。     这份代码主要是用来在客户端和服务器端发送wav文件的,其实是可以发送任意类型的文件的,因此在发送的过程中,仅仅是把文...
  • shengno1
  • shengno1
  • 2014年05月16日 21:18
  • 1362

java 简单的TCP接收数据与发送数据

package com.xiuye.ooooo; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java...
  • xiuye2015
  • xiuye2015
  • 2015年09月08日 15:39
  • 2841

TCP协议发送和接受文本消息

引用总结: 对于TCP协议我不想说太多东西,这属于大学课程,又涉及计算机科学,而我不是“学院派”,对于这部分内容,我觉得作为开发人员, 只需要掌握与程序相关的概念就可以了,不需要做太艰深的研究。 我们...
  • wfx7414
  • wfx7414
  • 2016年02月02日 11:12
  • 1690

基于TCP流协议的数据包通讯

TCP通讯是流协议,它不像UDP那样基于包为边界的通讯方式, TCP流式协议,举个简单例子,一端用send 分别发送 100,123,120字节的数据, 另一端用recv可以一下子接收到 100+12...
  • fanxiushu
  • fanxiushu
  • 2016年02月03日 23:43
  • 3777

发送缓冲区、接收缓冲区、滑动窗口协议之间的关系

大家知道,TCP采用的是全双工的工作模式,对每一个TCP的SOCKET来说,都有一个发送缓冲区和接收缓冲区与之对应,TCP的流量(拥塞)控制便是依赖于这两个独立的buffer滑动窗口协议之间。我们可以...
  • yuxin8000
  • yuxin8000
  • 2014年03月30日 11:50
  • 2117

网络编程——设计一个发送TCP数据包的程序

摘要 TCP/IP协议族是构建互联网的基石协议。在互联网中,从一台计算机向另外一台计算机传送数据,数据包可以通过两种协议传输。其中一种就是传输控制协议(Transmission Control ...
  • u011155228
  • u011155228
  • 2014年05月28日 17:02
  • 3025

tcp发送和接收的原理

需要理解的3个概念 1. TCP socket的buffer 每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的流量(拥塞)控制便是依赖于...
  • a879365197
  • a879365197
  • 2017年05月29日 15:29
  • 692

用struct模块实现python socket收发自定义TCP包

用struct模块实现python socket收发自定义TCP包
  • happen23
  • happen23
  • 2015年03月29日 17:29
  • 7658
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA TCP协议的发送接收
举报原因:
原因补充:

(最多只允许输入30个字)