这些天关于Socket的一些心得

来源:互联网 发布:优化蜜蜡是假的吗 编辑:程序博客网 时间:2024/06/05 10:39
这一章看了快一周了,内容越看越迷糊,堪称博大精深。
那么复杂的东西居然就几页写完,实在有些不负责任,何况最好的程序代码居然有问题!

下面看代码demo
//Server
import java.*;
public class Server{
    public static void mainString [] args{
        new Server().go();
    } 
public void go(){
    //set the port of the Server
    ServerSocket Server=new ServerSocket(1991);
    //set listener accept(),It will pause here forever until a client want to link with Server
    //you can new a Socket of Server,which link wink with the Socket of Client
    Socket SerSock=Server.accept();
    //InputStream means the Server get the message from the Client
    InputStream in=SerSock.getInputStream();
    BufferedReader reader=new BufferedReader(new InputStreamReader(in));
    System.out.println(reader.readLine());
    //close the ServerSocket
    Server.close(); 
 }
}
//Client
import java.*;
public class Client{
    public static void mainString [] args{
        new Client().go();
    } 
public void go(){
    //new a Socket,and set the IP and Port of which Server the Client want to link
    //if Server accept, CliSock can link with Server by SerSock
    Socket CliSock=new Socket("127.0.0.1",1991);
    //OutputStream means Client want to send message from Client to Server
    OutputStream out=CliSock.getOutputStream();
    PrintWriter writer=new PrintWriter(out);
    //after sending,close the Socket
    CliSock.close();
}
流程:
1、服务端:设定服务器端口,设置监听Server.accept();
2、客户端:新建Socket:CliSock,并向想要连接的服务器提出申请
3、服务端:accept() 监听到申请,并同意。并在服务端新建一个Socket :SerSock。CliSock与SerSock一一对应
4、客户端:获得CliSock的输出流,通过PrintWriter向服务端写入数据
5、服务端:获得SerSock的输入流,通过ReadLine读取客户端传来的数据


要点:
1、
SerSock与CliSock是两个不同,但是一一对应的Socket。 分别位于服务端和客户端。
2、
CliSock.getOutputStream();   //客户端的输出流,从客户端到服务端,代表客户端向服务端写入数据=
SerSock.getInputStream();   
CliSock.getInputStream();     //客户端的输入流,从服务端到客户端 ,代表客户端从服务端读取数据=
SerSock.getOutputStream(); 
SerSock.getOutputStream();   //服务端的输出流,从服务端到客户端,代表服务端向客户端写入数据
SerSock.getInputStream();     //服务端的输入流,从客户端到服务端 ,代表服务端从客户端读取数据
 
想到再补充
0 0
原创粉丝点击