Socker通信

本文介绍了使用Java的ServerSocket和Socket类实现TCP/IP通信。服务器端程序通过ServerSocket监听1314端口,接收客户端连接请求并发送信息。客户端程序则通过Socket建立连接,从服务器接收并显示信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.服务器端程序

TCP/IP服务器端应用程序是通过Java语言中提供的ServerSocketSocket这两个有关网络的类来实现的。而ServerSocket类除了建立一个Server之外,还通过accept()方法提供了随时监听客户端连接请求的功能,它的构造方法有以下两种。

ServerSocket(int port)

ServerSocket(int port,int backlog)

其中port是指连接中对方的端口号,backlog则表示服务器端所能支持的最大连接数。下面的程序用来监听客户端应用程序建立连接的请求,并在连接建立后向客户端发送信息。

/**

 * 功能:这是服务器端程序,用来监听客户端应用程序建立连接的请求,并在连接建立后向客户端发送信息

 */

package com.xushouwei;

//引入相应的包

import java.net.*;

import java.io.*;

public class TServer

{

   public static void main(String[] args)

   {

      //定义ServerSocket

      ServerSocket s=null;

      //定义Socket

      Socket s1;

      //定义发送字符串

      String sendString="QWERDF...";

      //得到发送字符串的长度

      int s1lenth=sendString.length();

      //定义OutputStream

      OutputStream s1out;

      //定义DataOutputStream

      DataOutputStream dos;

      //通过1314端口建立连接

      try

      {

        //创建ServerSocket并把传入端口号

        s=new ServerSocket(1314);

      } catch (Exception e)

      {

        e.printStackTrace();

      }

      //循环运行监听程序,以监视连接请求

      while(true)

      {

        try

        {

           //监听端口请求,等待连接

           s1=s.accept();

           //得到与socket相连接的数据流对象

           s1out=s1.getOutputStream();

           dos=new DataOutputStream(s1out);

           //发送字符串

           dos.writeUTF(sendString);

           //关闭数据流(但不是关闭Socket连接)

           dos.close();

           s1out.close();

           s1.close();

        } catch (Exception e)

        {

           e.printStackTrace();

        }

      }

   }

 

}

 

2.客户端程序

TCP/IP服务器端应用程序是通过Java语言中提供的Socket类来实现的。同样,Socket类提供了包括建立网络连接在内的许多功能,它的构造方法有以下几种:

Socket(InetAddress address,int port)

Socket(InetAddress address,int port,Booleanstream)

Socket(String host,int port)

Socket(String host,int port, InetAddresslocalAddr,int localPort)

其中,addresshostport分别指连接另一方的IP地址、主机名称和端口号,stream这表示该Socket是否是支持流的SocketlocalAddrlocalPort是本机的地址和端口号。下面程序用来与前面的服务器端程序建立连接,并将服务器端送来的信息显示在标准输出上。

/**

 * 功能:这是客户端程序,用来与前面的服务器端程序建立连接,并将服务器端送来的信息显示在标准输出上

 */

package com.xushouwei;

//引入相应的包

import java.Net.*;

import java.io.*;

public class TClint

{

   public static void main(String[] args)

   {

      //定义Socket

      Socket s1;

      //定义InputStream

      InputStream s1In;

      //定义DataInputStream

      DataInputStream dis;

      try

      {

        //在端口1314打开连接

        s1=new Socket("127.0.0.1",1314);

        //获得socket端口的输入句柄,并从中读取数据

        s1In=s1.getInputStream();

        dis=new DataInputStream(s1In);

        String st=new String(dis.readUTF());

        System.out.println(st);

        //操作结束,关闭数据流及socket连接

        dis.close();

        s1In.close();

        s1.close();

      } catch (Exception e)

      {

        e.printStackTrace();

      }

   }

 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值