Android---49---使用ServerSocket创建服务器端



使用ServerSocket创建服务器端:

Java中能够接受其他通信实体连接请求的是ServerSocket,ServerSocket对象用于监听来自客户端的Socket连接。

如果没有连接,它将一直处于等待状态。

ServerSocket构造方法:


构造方法摘要


ServerSocket()

创建非绑定服务器套接字。


ServerSocket(int port)

创建绑定到特定端口的服务器套接字。


ServerSocket(int port, int backlog)

利用指定的 backlog 创建服务器套接字并将其绑定到指定的本地端口号。


ServerSocket(int port, int backlog, InetAddress bindAddr)

使用指定的端口、侦听 backlog 和要绑定到的本地 IP 地址创建服务器。

参数 port 指定服务器要绑定的端口( 服务器要监听的端口), 参数 backlog 指定客户连接请求队列的长度, 参数 bindAddr 指定服务器要绑定的IP 地址.

绑定端口:ServerSocket(int port)

ServerSocket ss = new ServerSocket(30005);

创建一个与30005端口绑定的服务器,如果运行时无法绑定到该端口,会抛出异常,原因可能是该端口已经被其他服务器进程占用。

设定客户连接请求队列的长度:backlog

许多操作系统限定了队列的最大长度,一般为50.当队列中的连接请求达到了队列的最大容量时,服务器进程所在的主机会拒绝新的连接请求

只有当服务器进程通过ServerSocket的accept方法从队列中取出连接请求,使队列腾出空位时,队列才能继续加入新的连接请求

ServerSocket构造方法中backlog参数是用来设置连接请求队列的长度的,但是在以下几种情况下,仍然会采用操作系统限定的队列的最大长度:

backlog参数的值大于操作系统限定的队列的最大值

backlog参数的值小于或等于0

在Serversocket构造方法中没有使用backlog

接收和关闭与客户端的连接:

接收:ServerSocket的accept()

关闭:close()

创建ServerSocket的步骤

1.实例化一个指定端口的ServerSocket;

2.调用ServerSocket的accept()方法;

3.获得通过Socket得到的输入输出流;

4.读取和写入到Socket;

5.关闭流。

public static void main(String[] args) throws IOException {
		// 创建一个ServerSocket,用于监听客户端Socket的连接请求
		ServerSocket ss = new ServerSocket(30005);
		// 采用循环不断接受来自客户端的请求
		while (true) {
			// 每当接收到一个请求,服务器端也会产生一个对应的Socket
			Socket s = ss.accept();

			OutputStream os = s.getOutputStream();
			os.write("你好".getBytes("utf-8"));
			// 关闭
			os.close();
			s.close();
		}
	}
时间: 2024-10-21 06:45:26

Android---49---使用ServerSocket创建服务器端的相关文章

android中通过ServerSocket创建端口问题

============问题描述============ 在Activity中通过new ServerSocket(9090)创建了一个服务端口,为何通过netstat命令查看时该端口并没有打开? 然后在客户端无论如何也连接不上,这肯定的 代码: server=new ServerSocket(12345); System.out.println("ip:"+server.getLocalSocketAddress()+"----port: "+server.get

Android编程示例:创建机场计划模拟器应用程序

在本文中,我们将演示如何使用Android Studio和Java编程语言创建一个示例Android应用程序,从"临时"实现高级响应用户界面的功能.本文中讨论的应用程序将实现机场航班时刻表模拟的功能.在开发生命周期中,我们将实现Android应用程序的响应式用户界面,用于呈现"到达"和"离开"航班的列表,并提供动态生成和更新实时模式中的航班信息的功能. 我们将大力强调几个Java语言编程方面,并深入研究允许我们提供高级Android应用程序的编程

Android资源文件之创建与访问

资料来源于官方api文档 Android资源文件之创建与访问 Android适配之创建别名资源 如果你想将某一资源用于多种设备配置(但是不想作为默认资源提供), 则无需将同一资源放入多个备用资源目录中.相反,可以(在某些情况下)创建备用资源,充当保存在默认资源目录下的资源的别名. 注: 并非所有资源都会提供相应的机制让你创建指向其他资源的别名.特别是, xml/目录中的动画资源.菜单资源.原始资源以及其他未指定的资源均不提供此功能. 例如,加入你有有一个应用图片icon.jpg, 并且需要不同区

android基本的数据库创建和使用

android的四大组件中就有Content Provider,对其他应用,提供自己的数据,所以,一般情况下,android应用不需要提供content provider. 1.  简单的数据库表单字段声明: MySqlName.java public static final int VERSION = 1; public static final String DBNAME = "mydb"; /* * 联系人详情数据库 */ public class Contacts{ publ

Ubuntu 14.04 Android 使用Maven二 创建自己的Mavenproject

依据https://code.google.com/p/maven-android-plugin/wiki/GettingStarted 介绍,有两种方法能够创建Mavenproject. 第一种方法是用archetype, 可是我使用了之后,发现archetype产生的项目编译时有一个依赖找不到,无论了,先换其它方法. 另外一种方法就是使用android命令行创建项目,然后复制样例代码project的pom文件并改动, Ubuntu 14.04 设置Android开发环境 描写叙述了怎样用命令

转帖:Android 官方推荐 : DialogFragment 创建对话框

转: Android 官方推荐 : DialogFragment 创建对话框 复制内容,留作备份 1. 概述 DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等.在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog.注:官方不推荐直接使用Dialog创建对话框. 2. 好处与用法 使用DialogFragment

Android研究之动态创建UI界面详解

 Android的基本UI界面一般都是在xml文件中定义好,然后通过activity的setContentView来显示在界面上,这是Android UI的最简单的构建方式.其实,为了实现更加复杂和更加灵活的UI界面,往往需要动态生成UI界面,甚至根据用户的点击或者配置,动态地改变UI,本文即介绍该技巧.对事件和进程的可能安卓设备实现触摸事件的监听,跨进程 假设Android工程的一个xml文件名为activity_main.xml,定义如下: 1 2 3 4 5 6 7 8 9 10 11

Android中为APP创建快捷方式的原理(自己的理解)

我们首先来看Android中为APP创建快捷方式的原理: 从图上可以看出,Android大致分7步完成快捷方式的创建: 第一步:Android系统的launcher程序会调用它的pickShortcut()方法去启动系统的pickActivity程序(应用): 第二步:pickActivity程序(应用)启动后会调用它的CheckIntentFilter()方法,去在系统中寻找可以创建快捷方式的应用有哪些,并且列举出来.只要第三方                     App用<Intent-

Xamarin.Android使用教程之创建第一个Android应用程序

<Xamarin Platform 试用版下载地址> 在本文中,我们将使用Xamarin创建第一个Android应用程序. 安装完Xamarin之后,在Visual Studio中点击File-> New Project,你应该可以在可用模板中看见一个Android选项. 继续并选择"Blank App (Android)",然后单击确定. Xamarin继续运行,然后创建你的第一个"Hello World"应用程序. 如果你只运行该应用程序,请确