java中TCP传输协议

class TcpClient {

    public static void main(String[] args) throws Exception {
        //创建客户端的socket服务,指定目的主机和端口
        Socket s = new Socket("192.168.1.10",10003);
        //为了发送数据,获取socket流中的输出流
        java.io.OutputStream out = s.getOutputStream();
        out.write("hello tcp".getBytes());
        s.close();
    }
}

class TcpServer {

    public static void main(String[] args) throws Exception {
        //建立服务端socket服务,并监听一个端口
        ServerSocket ss = new ServerSocket(10003);
        //通过accept方法获取连接过来的客户端对象
        Socket s = ss.accept();
        String ip = s.getInetAddress().getHostAddress();
        //获取客户端发送过来的数据,使用客户端对象的读取流来读取数据
        InputStream in = s.getInputStream();

        byte[] buf = new byte[1024];
        int len = in.read(buf);
        System.out.println(new String(buf,0,len));
        //关闭客户端
        s.close();

    }
}

class TcpClient2 {

    public static void main(String[] args) throws Exception {
        //建立socket服务,指定连接的主机和端口
        Socket s = new Socket("192.168.1.10",10004);
        //获取socket流中的输出流。将数据写入该流,通过网络传送给服务端
        OutputStream out = (OutputStream) s.getOutputStream();
        out.write("hello Tcp".getBytes());
        //获取socket流中的输入流,将服务端反馈的数据获取到,并打印
        InputStream in = s.getInputStream();
        byte[] buf = new byte[1024];
        int len = in.read(buf);
        System.out.println(new String(buf,0,len));
        s.close();

    }
}

class TcpServer2 {

    public static void main(String[] args) throws Exception {

        ServerSocket ss = new ServerSocket(10004);
        Socket s = ss.accept();
        //服务端收信息
        InputStream in = s.getInputStream();
        String ip = s.getInetAddress().getHostAddress();

        byte[] buf = new byte[1024];
        int len = in.read(buf);
        System.out.println(new String(buf,0,len));

        //服务端发信息
        OutputStream out = (OutputStream) s.getOutputStream();
        out.write("have receive".getBytes());
        s.close();
        ss.close();

    }
}

/*需求:建立一个文本转换服务器
客户端给服务端发送文本,服务端会将文本转成大写再返还给客户端*/

class TcpClient3 {

    public static void main(String[] args) throws Exception {
        Socket s = new Socket("192.168.1.4",10005);
        //定义读取键盘数据的流对象,读取键盘录入文本
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

        //获取socket流中的输出流,通过网络传送到服务端
        BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

        //定义一个socket读取流,读取服务端返回的大写信息
        BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));

        String line = null;
        while((line=bufr.readLine())!=null) {
            if("over".equals(line))
                break;
            bufOut.write(line);
            bufOut.newLine();//结束标记
            bufOut.flush();

            String str = bufIn.readLine();
            System.out.println("server:"+str);
        }
        bufr.close();
        s.close();
        }
}

class TcpServer3 {

    public static void main(String[] args) throws Exception {
        ServerSocket ss = new ServerSocket(10005);
        Socket s = ss.accept();
        //读取socket读取流中的数据
        BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));

        //socket输出流,将大写文本写入到socket输出流,并发送给客户端
        BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

        String line = null;
        while((line=bufIn.readLine())!=null) {
            bufOut.write(line.toUpperCase());
            bufOut.newLine();//结束标记
            bufOut.flush();
        }
        s.close();
        ss.close();
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 08:46:48

java中TCP传输协议的相关文章

java中UDP传输协议

package pack; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /*public class Demo { public static void main(Stri

JAVA中TCP和UDP传输例子的对比

在本文中我将学到的java中的UDP和TCP在局域网内的传输做了对比,这里强调 的是局域网范围内,非广域网.首先,下面的是我写的在局域网内利用java中的UDP协议写的一个传输文件或者图片的类. --------------------------------------------------------------------------------------------------------------------------------------------------------

Java中的UDP协议编程

一. UDP协议定义   UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.UDP有不提供数据报分组.组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的. 二. 使用UDP的原因 它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频.视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包, 也不会对接收结果产生太大影响.比如我们聊天用的ICQ和O

java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端

java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端 启动界面如下图: 首先启动服务器: 客户端登陆,登陆成功后为: 默认发送是全部用户,是多人发送. 当在边列表里面选择了用户后,可以与此用户建立点对点链接进行聊天,可以发送文件. 用户在线离线状态会实时更新,如果离线,则存为离线消息.当下次上线的时候,会接受到离线消息 从一个用户接受文件的同时,还可以接受从服务器发过来的文件 接受文件完成后,显示记录,并显示保存目录 消息发送演示 服务器端代码: 1 im

TCP传输协议

1.TCP中一些名词解释 (1)MSS(maximum segment size) TCP的最大报文段大小,在TCP报文段中有一个16位的部分用于放置该值,因此最大为65535,可以利用setsockopt() 和getsockopt设置和获取TCP_MAXSEG来影响MSS: (2)MSL(maximum segment lifetime) IP报文段能在网络中存在的最长时间,这个是系统级的参数,没有接口修改,windows上可以通过注册表修改,通常为2分钟,最低为30秒,linux上面没法修

java中TCP总结

先看一张图,画的很挫,将就看. TCP 客户端与服务端通信时,是服务端会拿到客户端的socket进行通信. TCP就相当于以前的座机,有一个听筒和一个话筒,A用话筒说话,B用听筒听. 下面讲讲java中TCP的使用以及步骤. TCP客户端步骤: 1.建立Socket服务,并确定IP和Port 2.通过socket服务获取输入流或输出流. 3.通输入或输出流操作数据. TCP服务端的步骤: 1.用ServerSocket来监听Port 2.用accept获取客户端的Socket 3.通客户端的So

java中TCP之TCP实现

java中TCP之TCP实现 代码均来自计算机网络教材 此为服务器端代码 package server; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class TcpS

TCP传输协议使用

TCP传输协议,也称之为套接字连接,比较安全,三次握手!,必须确保对方计算机存在,才能连接,而且是长时间连接. 缺点是传输速度有点慢. 你用 socket 去连接 ServiceSocaket 服务器端,ServiceSocaket 会创建一个,Sockets 然后你的Socket ,连接服务器端创建的Socket 最后你的Socket 和 服务器端的 Socket 都会创建一个 OutputStrea 和InputStream 流用来传输数据. 如下图: ServerSocket : 服务端,

java中TCP和UDP两种协议的区别?

协议(网络中计算机之间通信的规则) 马克-to-win:(视频下载) (全部书籍)协议就是生活中的合同,生活中我们比如做一个大的软件项目,我们得和人签合同,说你们第一步给一部分钱,我们第二步干完活,你们第三 步给剩余的钱.网络协议也一样,说明一步一步我们怎么通信.我们上网经常用到超文本传输协议 (HTTP)或文件传输协议 (FTP)或简单邮件传输协议 (SMTP),这章我们重点讲述传输控制协议(TCP)和用户数据报协议(UDP). "传输控制协议"(TCP),具有高度的可靠性.即收到的