导航:首页 > 编程语言 > androidsocket编程

androidsocket编程

发布时间:2022-09-13 02:26:43

‘壹’ android编程,用socket网络编程,PC作服务器,手机是客户端,连接不上

你PC 和手机要在同一个网络内,比如无线路由器,你手机用wifi连接路由,pc也连接路由,cmd命令查看下PC的ip地址,请确保你的Ip是PC的ip,权限加上,这样绝对是没问题的,把你PC防火墙关掉,socket连接最好用
socket=new Socket();
SocketAddress socketAddress = new InetSocketAddress(ip,PORT);
socket.connect(socketAddress,8000);//设置超时时间

‘贰’ android的socket编程里,如何一次只如去一个字节

InputStream is = 你获取到的输入流

int read = is.read(); 读取一个字节
这个是一个阻塞操作,直到读取到一个字节,否则一直会阻塞在那等待数据到达,
当返回-1的时候表示读取到流结尾了,可以理解成已经读取完输入流的全部数据了。

‘叁’ android socket编程有什么实例

通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。 SOCKET用于在两个基于TCP/IP协议的应用程序之间相互通信。最早出现在UNIX系统中,是UNIX系统主要的信息传递方式。在WINDOWS系统中,SOCKET称为WINSOCK。 两个基本概念:客户方和服务方。当两个应用之间需要采用SOCKET通信时,首先需要在两个应用之间(可能位于同一台机器,也可能位于不同的机器)建立SOCKET连接,发起呼叫连接请求的一方为客户方,接受呼叫连接请求的一方成为服务方。客户方和服务方是相对的,同一个应用可以是客户方,也可以是服务方。 在客户方呼叫连接请求之前,它必须知道服务方在哪里。所以需要知道服务方所在机器的IP地址或机器名称,如果客户方和服务方事前有一个约定就好了,这个约定就是PORT(端口号)。也就是说,客户方可以通过服务方所在机器的IP地址或机器名称和端口号唯一的确定方式来呼叫服务方。在客户方呼叫之前,服务方必须处于侦听状态,侦听是否有客户要求建立连接。一旦接到连接请求,服务方可以根据情况建立或拒绝连接。连接方式有两种,同步方式(Blocking)和(noBlocking). 客户方发送的消息可以是文本,也可以是二进制信息流。当客户方的消息到达服务方端口时,会自动触发一个事件(event),服务方只要接管该事件,就可以接受来自客户方的消息了。

‘肆’ android的socket编程里面,如何确定输入流的字节长度呢

inputstream.avaliable()

‘伍’ android 为什么一般要用http来进行网络编程,而用 socket 的比较少 sockest有什么缺点

http在tcp之上,要先用socket建立tcp才能实现http。只不过帮你把底层实现屏蔽了,面向对象的特点。

‘陆’ android socket 编程中,本机IP与虚拟机IP分别是多少

Socket(套接字)是一种抽象层,应用程序通过它来发送和接收数据,就像应用程序打开了一个文件句柄,将数据读写到稳定的存储器上一样。使用Socket可以将应用程序添加到网络中,并与处于同一网络中的其他应用程序进行通信。一台计算机上的应用程序向socket写入的信息能够被另一台计算机上的另一个应用程序读取,反之依然。根据不同的的底层协议实现,也会很多种不同的Socket。本课当中只覆盖了TCP/IP协议族的内容,在这个协议族当中主要的Socket类型为流套接字(stream socket)和数据报套接字(datagram socket)。流套接字将TCP作为其端对端协议,提供了一个可信赖的字节流服务。数据报套接字使用UDP协议,提供可一个“尽力而为”的数据报服务,应用程序可以通过它发送最长65500字节的个人信息。


  1. 使用基于TCP协议的Socket

    一个客户端要发起一次通信,首先必须知道运行服务器端的主机IP地址。然后由网络基础设施利用目标地址,将客户端发送的信息传递到正确的主机上,在java中,地址可以由一个字符串来定义,这个字符串可以使数字型的地址(比如192.168.1.1),也可以是主机名(example.com)。
    在Java当中InetAddress类代表了一个网络目标地址,包括主机名和数字类型的地址信息。


  2. 使用基于UDP的Socket

    1.创建DatagramPacket
    DatagramSocket(byte [] data,int offset,int length,InetAddress remoteAddr,int remotePort)该构造函数创建一个数据报文对象,数据包含在第一个参数当中
    2.创建DatagramSocket创建
    DatagramSocket(int localPort)以上构造函数将创建一个UDP套接字;
    3. DatagramSocket:发送和接受
    void send(DatagramPacket packet)
    void receive(DatagramPacket packet)
    send()方法用来发送DatagramPacket实例。一旦创建连接,数据报将发送到该套接字所连接的地址;
    receive()方法将阻塞等待,知道接收到数据报文,并将报文中的数据复制到指定的DatagramPacket实例中


  3. Android 模拟器中做端口重定向

    android的模拟器有个特点,就是访问网络的时候只可以从模拟器主动往出去连。但是却无法主的从外面连接模拟器,这个特点和NAT几乎完全一样,具有单向连接的特性。 实际开发中我们希望模拟器像一台独立的手机一样,能和处于同一局域网中的手机进行端对端的通信。这时就需要做端口重定向。 类似于给路由器做nat的端口重定向。


  4. 运行模拟器:你会发现模拟器标题栏上写着端口号:5554,其实这个端口号是模拟器的console端口 >telnet到模拟器的console口上:telnet localhost 5554在控制台下输入 redir add tcp:6668:9998 就完成了从主机6668端口重定向到模拟器9998端口的任务


  5. 建议使用Android 手机进行调试,在模拟器使用java socket会遇上很多连接不上的问题,这些都是模拟,才导致的

‘柒’ Android socket编程,用线程来捕获socket返回的数据,出现了问题,没有

你这个写法,发送的代码在while循环以外,只能收一次,然后线程就退出了.

‘捌’ 如何用socket实现android手机与手机之间的通信

参考一般的JAVA的socket编程,如果通过手机网络,就不要使用UDP即可。

‘玖’ android Socket编程使用死循环一直收发数据CPU占用率过高怎么办

服务器端与客户端都加上Thread.sleep(XXX)方法,时间根据自己的需要权衡

‘拾’ android socket编程,客户端老是提示socket已关闭是为什么

TCP连接断开的时候调用closesocket函数,已经讨论过有优雅的断开和强制断开,那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。
linger结构体数据结构如下:
struct linger
{

int l_onoff;
int l_linger;
};
有三种组合方式:
第一种
l_onoff = 0;
l_linger忽略
这种方式下,就是在closesocket的时候立刻返回,底层会将未发送完的数据发送完成后再释放资源,也就
是优雅的退出。

第二种
l_onoff非零
l_linger = 0;
这种方式下,在调用closesocket的时候同样会立刻返回,但不会发送未发送完成的数据,而是通过一个REST包强制的关闭socket描述符,也就是强制的退出。

第三种
l_onoff非零
l_linger > 0
这种方式下,在调用closesocket的时候不会立刻返回,内核会延迟一段时间,这个时间就由l_linger得值来决定。如果超时时间到达之前,发送完未发送的数据(包括FIN包)并得到另一端的确认,closesocket会返回正确,socket描述符优雅性退出。否则,closesocket会直接返回错误值,未发送数据丢失,socket描述符被强制性退出。需要注意的时,如果socket描述符被设置为非堵塞型,则closesocket会直接返回值。

关于TCP的退出暂时了解这些,遇到问题再具体分析解决。

阅读全文

与androidsocket编程相关的资料

热点内容
编译器原理与实现书 浏览:708
dos选择命令 浏览:16
apm固件编译到单片机 浏览:120
联通深蓝卡都包含什么app 浏览:263
如何判断网络服务器正常 浏览:649
路由器搭桥远端服务器地址是什么 浏览:515
编译动态库时会连接依赖库吗 浏览:707
淘宝手机加密是随机的吗 浏览:672
解压包子怎么装饰 浏览:585
四个数凑24算法 浏览:676
哪一种不是vi编译器的模式 浏览:169
xp在此处打开命令窗口 浏览:128
代码编译运行用什么软件 浏览:999
动态库在程序编译时会被连接到 浏览:761
python超简单编程 浏览:260
获取命令方 浏览:977
怎样制作文件夹和图片 浏览:60
调研编译写信息 浏览:861
python冯诺依曼 浏览:419
同时安装多个app有什么影响 浏览:254