当前位置:首页 » 手机网络 » 移动网络socket通讯
扩展阅读
最好用的手机锁屏软件 2025-06-20 06:16:00
戴尔电脑黑屏不显示内容 2025-06-20 06:16:00

移动网络socket通讯

发布时间: 2022-05-16 03:16:56

1. socket是什么意思

socket(也叫套接字)最初是在Unix系统上开发的网络通信的接口。
后来微软等公司将它移植到了windows下,当然原来unix系统下的还是好用的。
对于socket可以这样理解:
它就是一个函数库,里面包括大量的函数和相应的数据结构,已经实现好了。
它支持网络通信。
程序开发人员可以通过阅读相关的函数文档,了解函数的使用方法,进行网络的编程。
两种形式的socket:流式套接字,对应与TCP协议。
数据报套接字,对应与UDP协议。

2. 移动app 为什么选择socket通信而不选择http

手机客户端 与服务器通信,通常是CS模式,当然是用普通socket了,HTTP其实也是socket,只不过他是基于TCP的短连接,功能有限,除了可以剔除暂时不用的链路外,优点不明显,相反缺点多:
HTTP采用明文传输,安全方面不行,socket可以采用自定义协议,所以更加安全.
HTTP通常是短连接,没法收到服务器主动推送的消息,socket则可以,通常是常连接
HTTP传输比较占用流量,而用socket则只是结构体对齐,省去了变量的名词
HTTP解析速度慢,而用socket则通常不需要解析,只是简单的判断消息类型,即可.

当然用HTTP开发速度快,很容易就完成一个APP界面

3. http和socket通信的区别

其实这样比是有问题的,http实际上是一种应用级协议,常用的是http1.0和http 1.1协议。而socket则是一个连接,它直接在链路层上进行连接。在该连接的基础之可以实现各种应用级协议。如通过socket可以实现ftp协议、http、https、NetBIOS、Win、Iron等等,甚至于可以实现蓝牙(蓝牙连接在.net中不被支持,是因为socket所需参数的协议簇中枚举中没有蓝牙,但可以直接通过数据,实现与蓝牙的通信)。所以http是一个协议与Socket连接是没有可比性的,在.net中,可实现http协议的连接。
正是因为socket功能的强大,所以对于socket编程一般用于特殊一点的协议或高性能网络要求的情况下才使用这种编程。如果是一般的tcp/ip,在.net中已经实现了其功能封装。例如WebClient实现http/https,再如.net 4.5新增的HttpClient也可以实现同的功能。但这些功能较为狭窄,那么在.net中的可插入协议是一个中庸的选择。目前实现的有HttpWebRequest/FtpWebRequest。并且可继承WebRequest实现自己的可插入协议。

也就是说,如果我们与httpClient或WebClient与Scoket相比的话,WebClinet/HttpClient是实现特定功能的Socket封装,它减少开发周期,但底层还是Socket。如果WebRequest与Socket相比的话,WebRequest是实现特定协议的Socket封闭,并可实现可插入协议。换句来说,WebClient是完完全全的一个通信类,而WebRequest则算是一个协议开发类(它已经实现了FtpWebRequest及HttpWebRequest),而Socket则是底层开发。

4. 如何用socket实现android手机与手机之间的通信

有两种方案:

1、在PC机上建立服务器,手机与手机之间的通信通过服务器进行中转

2、一部手机作为服务器,另一部手机作为客户端接入该手机

一般是第一种方案

示例代码:

1、pc端:
serverSocket=newServerSocket(5648);//在5648端口进行侦听
Socketsk=serverSocket.accept();//如果有接入,则创建对应的socket;

2、手机端:
socket=newSocket("tobacco5648.xicp.net",5648);//连接socket

3、消息输入输出:
pw=newPrintWriter(socket.getOutputStream());//消息输出
pw.println("发送消息");
pw.flush();

br=newBufferedReader(newInputStreamReader(socket.getInputStream()));//消息接收
while((str=br.readLine())!=null){
//接收消息
}

5. 怎么通过socket或者wifi实现通信

没有关系,socket通信编程对物理网络媒介类型不敏感。

分两种情形说明:
1. 在设备系统内部,socket不需要通过网络进行通信,所以系统内部的socket通信不依赖上网方式。
2. 在不同设备之间,socket通信一般基于IPv4/IPv6,而IP的一大功能就是屏蔽了网络层以下(包括链路层和物理层)的不同特征,使应用程序在使用IP报文进行通信时在任何网络媒介上都使用相同的方式。socket在IP之上,更不需要考虑物理网络是有线还是无线等因素。

socket编程,只需要掌握几个socket接口的使用,理清socket通信对象就可以了。

6. 什么是Socket简单点,通俗易懂的

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

7. 我想实现在手机间通过socket实现通信功能(不需要服务器做中转什么的),可以实现吗要怎么做呢

手机之间互相socket如果是内网之间是没问题的,如果是广域网存在很多问题,涉及到网络穿透,直接连接是万万不行的。必须通过中间服务器,实现了网络穿透连接,然后手机和手机才能直连。具体你可以查查网络 tcp 穿透。

8. 在网络环境不好的情况下,为什么手机端的socket通信比较卡,但是http的通信比较流畅呢

1.socket通信是手机端到手机端的通信,要经过服务器来回转发数据。
2.http的通信是手机到web服务器端通信,就直接来回发送数据。
3.socket通信要看两端手机信号好坏来决定传输速度。
4.http的通信的WEB服务器是有线的再到无线,有线速度快?还是无线的快呢?
解释的不好,希望能帮助你。

9. java Socket通信原理

具体如下:

首先socket 通信是基于TCP/IP 网络层上的一种传送方式,我们通常把TCP和UDP称为传输层。其中UDP是一种面向无连接的传输层协议。UDP不关心对端是否真正收到了传送过去的数据。

如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。UDP常用在分组数据较少或多播、广播通信以及视频通信等多媒体领域。

在这里我们不进行详细讨论,这里主要讲解的是基于TCP/IP协议下的socket通信。

socket是基于应用服务与TCP/IP通信之间的一个抽象,他将TCP/IP协议里面复杂的通信逻辑进行分装。

服务端初始化ServerSocket,然后对指定的端口进行绑定,接着对端口及进行监听,通过调用accept方法阻塞。

此时,如果客户端有一个socket连接到服务端,那么服务端通过监听和accept方法可以与客户端进行连接。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。