Socker通信

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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();


      }


   }


 


}


 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/210118.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java 图片识别 tess4j_JAVA使用Tess4J进行ocr识别

    java 图片识别 tess4j_JAVA使用Tess4J进行ocr识别Tess4J是对TesseractOCRAPI.的JavaJNA封装。使java能够通过调用Tess4J的API来使用TesseractOCR。支持的格式:TIFF,JPEG,GIF,PNG,BMP,JPEG,andPDFTesseract的github地址:https://github.com/tesseract-ocr/tesseractTess4J的github地址:https…

  • hdu 3336 Count the string(kmp应用)

    hdu 3336 Count the string(kmp应用)ProblemDescriptionItiswellknownthatAekdyCoinisgoodatstringproblemsaswellasnumbertheoryproblems.Whengivenastrings,wecanwritedownallthenon-emptyprefixesofthisstring.

  • 树莓派python编程自学-树莓派Python编程指南 中文PDF扫描版

    《树莓派Python编程指南》共12章:第1~3章深入介绍如何在树莓派上使用Python,为学习其他知识打下基础;第4章介绍使用Qt工具包开发图形用户界面;第5章介绍在Python中创建游戏;第6章介绍如何利用GPU来使用OpenGL创建3D场景;第7章讲解如何从网页上抓取信息或使用树莓派为全世界提供内容和服务;第8章介绍使用Python在树莓派中构建自己的游戏世界;第9章使用Python在树莓派…

  • php字符串大小写转换函数

    php字符串大小写转换函数php字符串大小写转换函数

  • 算法学习–分酒问题(BFS)[通俗易懂]

    算法学习–分酒问题(BFS)[通俗易懂]有4个红酒瓶子,它们的容量分别是:9升,7升,4升,2升开始的状态是[9,0,0,0],也就是说:第一个瓶子满着,其它的都空着。允许把酒从一个瓶子倒入另一个瓶子,但只能把一个瓶子倒满或把一个瓶子倒空,不能有中间状态。这样的一次倒酒动作称为1次操作。假设瓶子的容量和初始状态不变,对于给定的目标状态,至少需要多少次操作才能实现?本题就是要求你编程实现最小操作次数的计算。输入:最终状…

    2022年10月19日
  • 为什么L1正则化导致稀疏解「建议收藏」

    一、从数据先验的角度首先你要知道L1范式和L2范式是怎么来的,然后是为什么要把L1或者L2正则项加到代价函数中去.L1,L2范式来自于对数据的先验知识.如果你认为,你现有的数据来自于高斯分布,那么就应该在代价函数中加入数据先验P(x),一般由于推导和计算方便会加入对数似然,也就是log(P(x)),然后再去优化,这样最终的结果是,由于你的模型参数考虑了数据先验,模型效果当然就更好.哦对了,如果你…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号