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


      }


   }


 


}


 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • javaCV开发详解之2:推流器和录制器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV、FFMPEG和openCV)「建议收藏」

    javaCV开发详解之2:推流器和录制器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV、FFMPEG和openCV)「建议收藏」javaCV系列文章:javacv开发详解之1:调用本机摄像头视频javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)javaCV开发详解之4:转流器实现(也可作…

    2022年6月6日
    74
  • 详细了解 clientWidth、clientHeight、clientLeft、clientTop 以及几个常用的场景

    详细了解 clientWidth、clientHeight、clientLeft、clientTop 以及几个常用的场景clientLeft、clientHeight、clientWidth、clientHeightclientWidth、clientHeight元素内部宽度和高度,clientLeft、clientTop获取元素内边距边框到边框的距离.大概如下图所示:clientWidth属性表示元素的内部宽度,以像素计。该属性包括内边距,但不包括垂直滚动条(如果有)、边框和外边距。如上图所示,计算方式为,分为如下两种:存在垂直滚动条 contentwidth+paddin…

    2022年7月22日
    15
  • java课设_Java 课设

    java课设_Java 课设展开全部简单的五子棋程序新建一个chess类,其中代码如下packagework;importjava.awt.Color;publicclassChess{publicstaticfinalintdiamter=30;privateintx;//在网格中的索引,0~e68a84e8a2ad62616964757a686964616f3133323865663715priva…

    2022年7月12日
    16
  • @Android属性动画完全解析

    @Android属性动画完全解析转载:http://blog.csdn.net/guolin_blog/article/details/43536355在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始

    2022年7月3日
    23
  • php面试题目100及最佳答案_社区工作者面试题目

    php面试题目100及最佳答案_社区工作者面试题目Php面试100题汇总1,Http和Https的区别第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议第二:http和https使用的是完全不同的连接方式,端口也不一样,前者80或者443第三:http连接很简单,是无状态的。https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议。2.什么方法来加快页面的加载速度1,用到服务器资源

    2022年8月29日
    5
  • 这是一篇日记而已

    这是一篇日记而已2018年6月27日                                          星期三                                       晴(巨热)刚刚装订好C++的课设报告,瞬间感觉轻松了不少,因为今天四点顺利的考完了并行计算,加上周二交上的十五六页Oracle结课报告,本学期的三门选修课都已经顺利结课。从明天起,基本上已经进入了没课…

    2022年5月7日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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