黑马程序员--TCP网络程序的工作原理

TCP网络程序的工作原理

      TCP客户端程序与TCP服务器端程序的交互过程:
            1)服务器程序创建一个ServerSocket,然后调用accept方法等待客户来连接。

            2)客户端程序创建一个Socket并请求与服务器建立连接

            3)服务器接收客户的连接请求,并创建一个新的Socket与该客户建立专线连接

            4)建立了连接的两个Socket在一个单独的线程上对话

            5)服务器开始等待新的连接请求,当新的连接请求到达时,重复步骤(2)到步骤(5)的过程

      ServerSocket构造函数:

                  - public serverSocket()

                  - public serverSocket(int port)
  
                  - public serverSocket(int port,int backlog)

                  - public serverSocket(int port,int backlog,InetAddress bindAddr)

           close方法
           accept方法
                
      
     Socket构造函数:

                  - public Socket()

                  - public Socket(String host,int port)
  
                  - public Socket(InetAddress,add,int port)

                  - public Socket(String host,int port,InetAddress local,int localPort)

                  - public Socket(InetAddress address,int port,InetAddress localAddr,int localPort)

 举例: 从网络输入流中一次读取一行文件

   package Chat;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

 

public class TcpServer {

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

  //创建ServerSocket对象
  ServerSocket ss = new ServerSocket(9999);
  //返回Socket 对象
  Socket s = ss.accept();
  //返回 InputStream 对象
  InputStream ips = s.getInputStream();
  //返回 OnputStream 对象
  OutputStream ops = s.getOutputStream();
  //写入输出流
  ops.write("欢迎!!!".getBytes());
  //创建字节流数组
  //byte [] buf = new byte[1024];
  //输入流读
  //int len = ips.read(buf);
  
 // System.out.println(new String(buf,0,len));
  
  BufferedReader br = new BufferedReader(new InputStreamReader(ips));
  
  br.readLine();
  
  br.close();
  //关闭流
  //ips.close();
  ops.close();
  //关闭对象
  s.close();
  ss.close();
 }

 

}

          TCP服务器程序模型的编写要点:

                  TCP服务器程序要想能接收多个客户端连接,需要循环调用ServerSocket.accept方法

                  服务器程序与每个客户端连接的会话过程不能互相影响,需要在独立的线程中运行

                  一个线程服务对象与一个服务器端Socket对象相关联,共同来完成与一个客户端的会话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值