安卓tcp和udp怎么使用
① C# 和Android的 TCP(UDP)通信
服务器程序
它仅仅建立ServerSocket监听,并使用Socket获取输入输出流。
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class SimpleServer {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//创建一个ServerSocket,用于监听客户端socket的连接请求
ServerSocket ss=new ServerSocket(30000);
//采用循环不断接受来自客户端的请求,服务器端也对应产生一个Socket
while(true){
Socket s=ss.accept();
OutputStream os=s.getOutputStream();
os.write("您好,您收到了服务器的新年祝福!n".getBytes("utf-8"));
os.close();
s.close();
}
}}
客户端程序
package my.learn.tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
public class SimpleClient extends Activity {
private EditText show;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
show = (EditText) findViewById(R.id.show);
try {
Socket socket = new Socket("自己计算机的IP地址", 30000);
//设置10秒之后即认为是超时
socket.setSoTimeout(10000);
BufferedReader br = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String line = br.readLine();
show.setText("来自服务器的数据:"+line);
br.close();
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
Log.e("UnknownHost", "来自服务器的数据");
e.printStackTrace();
} catch (IOException e) {
Log.e("IOException", "来自服务器的数据");
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
② TCP和UDP通信有什么区别 如何分别用java实现
TCP是面向连接,UDP面向非连接,资料不复制,在这里简单说下:x0dx0aTCP建立连接时需要传说的三次握手,服务端与客户端需要确认对方身份而已,建立好连接后,就开始传递消息,直到有一方断开连接位置。 就好比两个人打电话,要先通了才能说话。x0dx0aUDP只是数据报发送,它的优点速度快,并非要向TCP那样麻烦建立,它只负责将信息发出,但是并不确保信息的准确完整性等,就好比发短信,短信是出去了,但是中间是否有问题,是否对方手机能收到就不管了。x0dx0a在java中想要实现上述两种协议通信,可采用socket建立连接,socket可以理解为码头,其实是套接字,这里简单说下,就好比两个城市运输货物,通过码头走货一样。至于如何通过socket建立两个连接,网上资料多的是,在这里不复制例子了。
③ android中的tcp udp需要权限吗
android中的tcp和udp不需要任何权限。因为它们都是网络通讯协议的一种,只要手机没有问题,能够上网,就可以使用TCP和UDP协议了。
TCP/IP是用于电脑通信的一组协议,我们通常称之为TCP/IP协议族,它是七十年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的Internet是目前国际上规模最大的电脑网络,正因为Internet的广泛使用,使得TCP/IP成了事实上的标准。之所以说TCP/IP是一个协议族,是因为TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP、TFTP等许多协议,这些协议统称为TCP/IP协议。
TCP/IP协议的名字实际上是来自最重要的两个协议,TCP(传输控制协议)和IP(网际协议)。它负责把需要传输的信息分割成许多小包,也叫做信息包,然后把这些信息包发往目的地,它能有效地保证传输的安全性和正确性。
在Internet内部,信息不是以一个恒定的流从主机传送到主机,而是把数据分解成小包,即数据包进行传送。例如你传送一封很长的信件给你的朋友,TCP就可以把这些信息分成很多个数据包,每个数据包用一个序号和一个接收地址来标定。此外,TCP还插入一些纠错信息。
接着数据包被传过网络,这就是IP的工作,即把它们传送给远程主机。在另一端,TCP接收到数据包并核查错误。如果有错误发生,TCP可以要求重发这个特定的数据包。只要所有的数据包都被正确地接收到,TCP将用序号来重新构造原始信息。换句话说,IP的工作是把原始数据从一地传送到另一地,TCP的工作是管理这种流动并确保其数据是正确的。ß把数据分解成数据包有很多好处。首先,它允许Internet让很多不同的用户在同一时刻使用同一通讯线路。因为这些数据包不必一起输送,所以通讯线路可以载着所有类型的数据包按它们自己的路径从一地到另一地。就如一条高速公路上各个汽车都在公路上行驶。ß用数据包传输的另一个好处是:当某处出错,只需重新传送单个数据包,而不是整个信息,这样会大大加快Internet的传输总速度。
TCP/IP是把电脑和通讯设备组织成网络的协议大家庭,两个最重要的协议是TCP和IP。IP从一地到另一地传输数据,而TCP则保证它们都正确地工作。
目前,遍布世界范围的Internet网络主要采用的就是TCP/IP协议,而且,国内大多数网络建设现在已朝着TCP/IP协议的方向发展。