热门关键词:

SAP中的套接字编程

添加时间:2022-03-02 15:22:33

来源:

浏览:

建立套接字连接 


要连接到另一台机器,我们需要一个套接字连接。套接字连接意味着两台机器拥有关于彼此的网络位置(IP 地址)和 TCP 端口的信息。java.net.Socket 类表示一个 Socket。要打开一个套接字: 


Socket socket = new Socket(“127.0.0.1”, 5000)

第一个参数 – 服务器的 IP 地址。( 127.0.0.1 是 localhost 的 IP 地址,代码将在单机上运行)。

第二个参数 –  TCP Port。(只是一个数字,表示要在服务器上运行哪个应用程序。例如,HTTP 在端口 80 上运行。端口号可以从 0 到 65535)

通信 

为了通过套接字连接进行通信,流用于输入和输出数据。 


关闭连接


一旦向服务器发送消息,套接字连接就会显式关闭。


在程序中,客户端不断读取用户的输入并将其发送到服务器,直到输入“Over”。


Java 实现



// A Java program for a Client

import java.net.*;

import java.io.*;

 

public class Client

{

    // initialize socket and input output streams

    private Socket socket            = null;

    private DataInputStream  input   = null;

    private DataOutputStream out     = null;

 

    // constructor to put ip address and port

    public Client(String address, int port)

    {

        // establish a connection

        try

        {

            socket = new Socket(address, port);

            System.out.println("Connected");

 

            // takes input from terminal

            input  = new DataInputStream(System.in);

 

            // sends output to the socket

            out    = new DataOutputStream(socket.getOutputStream());

        }

        catch(UnknownHostException u)

        {

            System.out.println(u);

        }

        catch(IOException i)

        {

            System.out.println(i);

        }

 

        // string to read message from input

        String line = "";

 

        // keep reading until "Over" is input

        while (!line.equals("Over"))

        {

            try

            {

                line = input.readLine();

                out.writeUTF(line);

            }

            catch(IOException i)

            {

                System.out.println(i);

            }

        }

 

        // close the connection

        try

        {

            input.close();

            out.close();

            socket.close();

        }

        catch(IOException i)

        {

            System.out.println(i);

        }

    }

 

    public static void main(String args[])

    {

        Client client = new Client("127.0.0.1", 5000);

    }

}

服务器编程


建立套接字连接


要编写服务器应用程序,需要两个套接字。 


等待客户端请求的 ServerSocket(当客户端创建新的 Socket() 时)

用于与客户端通信的普通旧 Socket 套接字。

通信

getOutputStream() 方法用于通过套接字发送输出。


关闭连接 

完成后,通过关闭套接字以及输入/输出流来关闭连接很重要。



// A Java program for a Server

import java.net.*;

import java.io.*;

 

public class Server

{

    //initialize socket and input stream

    private Socket          socket   = null;

    private ServerSocket    server   = null;

    private DataInputStream in       =  null;

 

    // constructor with port

    public Server(int port)

    {

        // starts server and waits for a connection

        try

        {

            server = new ServerSocket(port);

            System.out.println("Server started");

 

            System.out.println("Waiting for a client ...");

 

            socket = server.accept();

            System.out.println("Client accepted");

 

            // takes input from the client socket

            in = new DataInputStream(

                new BufferedInputStream(socket.getInputStream()));

 

            String line = "";

 

            // reads message from client until "Over" is sent

            while (!line.equals("Over"))

            {

                try

                {

                    line = in.readUTF();

                    System.out.println(line);

 

                }

                catch(IOException i)

                {

                    System.out.println(i);

                }

            }

            System.out.println("Closing connection");

 

            // close connection

            socket.close();

            in.close();

        }

        catch(IOException i)

        {

            System.out.println(i);

        }

    }

 

    public static void main(String args[])

    {

        Server server = new Server(5000);

    }

}

要点 


服务器应用程序在特定端口 5000 上创建一个 ServerSocket。这将启动我们的服务器侦听来自端口 5000 的客户端请求。

然后服务器创建一个新的 Socket 与客户端通信。

套接字 = server.accept()

accept() 方法阻塞(只是坐在那里),直到客户端连接到服务器。

然后我们使用 getInputStream() 方法从套接字获取输入。我们的服务器一直在接收消息,直到客户端发送“结束”。

完成后,我们通过关闭套接字和输入流来关闭连接。

要在您的机器上运行客户端和服务器应用程序,请编译它们。然后首先运行服务器应用程序,然后运行客户端应用程序。

在终端或命令提示符上运行


打开两个窗口,一个用于服务器,另一个用于客户端


1.首先运行Server应用程序,  


$java 服务器

服务器开始 

等待客户端...


2.然后在另一个终端上运行客户端应用程序,  


$ java客户端

它将显示 - 已连接并且服务器接受客户端并显示,

客户端接受


3. 然后您可以开始在客户端窗口中输入消息。这是客户端的示例输入  


你好

我做了我的第一个套接字连接

超过

服务器同时接收和显示,  


你好

我做了我的第一个套接字连接

超过

关闭连接

请注意,发送“Over”会关闭客户端和服务器之间的连接,就像之前所说的那样。 


如果您使用的是 Eclipse 或类似的东西-


在两个不同的终端或选项卡上编译它们

首先运行服务器程序

然后运行客户端程序

在客户端窗口中键入消息,服务器窗口将同时接收和显示这些消息。

键入结束。


用户名 Name
评论 Comment

关注

SAP系统

  • 地 址:四川省成都市人民南路4段成科西路3号
  • 电 话:18215 660330
  • 手机:18215 660330
  • 传 真:18215 660330
  • 邮 箱:179001057@qq.com
  • 邮政编码:610000