我想问下如何在手机上建立一个服务器,用Socket的方法如何实现。 50
我想问下如何在手机上建立一个服务器,用Socket的方法如何实现。1号手机建立服务端。2号手机为客户端口。1号发送信息至2号。用Scoket怎么实现该目的,能详细说下么。...
我想问下如何在手机上建立一个服务器,用Socket的方法如何实现。
1号手机建立服务端。2号手机为客户端口。1号发送信息至2号。
用Scoket怎么实现该目的,能详细说下么。谢谢 展开
1号手机建立服务端。2号手机为客户端口。1号发送信息至2号。
用Scoket怎么实现该目的,能详细说下么。谢谢 展开
展开全部
TCP方式:
TCP协议客户端实现:
//创建一个Socket对象,指定服务器端的IP地址和端口号
Socketsocket=newSocket("192.168.1.104",4567);
//使用InputStream读取硬盘上的文件,这里只是用文件当做信息源,可以读取控件用户输入信息
InputStreaminputStream=new
FileInputStream("f://file/words.txt");
//从Socket当中得到OutputStream
OutputStream outputStream=socket.getOutputStream();
bytebuffer[]=newbyte[4*1024];inttemp=0;
//将InputStream当中的数据取出,并写入到OutputStream当中
while((temp=inputStream.read(buffer))!=-1)
5
{
outputStream.write(buffer,0,temp);}
outputStream.flush();}
TCP协议服务器端实现:
//声明一个ServerSocket对象
ServerSocketserverSocket=null;
try{
//创建一个ServerSocket对象,并让这个Socket在4567端口监听
serverSocket=newServerSocket(4567);
//调用ServerSocket的accept()方法,接受客户端所发送的请求,
//如果客户端没有发送数据,那么该线程就停滞不继续
Socketsocket=serverSocket.accept();
//从Socket当中得到InputStream对象
InputStreaminputStream=socket.getInputStream();
bytebuffer[]=newbyte[1024*4];
inttemp=0;
//从InputStream当中读取客户端所发送的数据
while((temp=inputStream.read(buffer))!=-1)
{
System.out.println(newString(buffer,0,temp));}
}
catch(IOExceptione)
{
e.printStackTrace();}
serverSocket.close();
}
UDP方式
UDP的客户端代码实现如下:
public static void main(String[]args)
{
try{
//首先创建一个DatagramSocket对象
DatagramSocket socket=new DatagramSocket(4567);
//创建一个InetAddree
6
InetAddress serverAddress=InetAddress.getByName("192.168.1.104");
String str="hello";
//这是要传输的数据
byte data[]=str.getBytes();
//把传输内容分解成字节
//创建一个DatagramPacket对象,并指定要讲这个数据包发送到网
络当中的哪个地址,以及端口号
DatagramPacket packet=new
DatagramPacket(data,data.length,serverAddress,4567);
//调用socket对象的send方法,发送数据
socket.send(packet);}
catch(Exceptione)
{
e.printStackTrace();}
}
UDP的服务端代码实现如下:
//创建一个DatagramSocket对象,并指定监听的端口号
DatagramSocket socket=new DatagramSocket(4567);
bytedata[]=newbyte[1024];
//创建一个空的DatagramPacket对象
DatagramPacket packet=new DatagramPacket(data,data.length);
//使用receive方法接收客户端所发送的数据,
//如果客户端没有发送数据,该进程就停滞在这里
socket.receive(packet);
Stringresult=newString(packet.getData(),packet.getOffset(),
packet.getLength());
System.out.println("result--->"+result);
TCP协议客户端实现:
//创建一个Socket对象,指定服务器端的IP地址和端口号
Socketsocket=newSocket("192.168.1.104",4567);
//使用InputStream读取硬盘上的文件,这里只是用文件当做信息源,可以读取控件用户输入信息
InputStreaminputStream=new
FileInputStream("f://file/words.txt");
//从Socket当中得到OutputStream
OutputStream outputStream=socket.getOutputStream();
bytebuffer[]=newbyte[4*1024];inttemp=0;
//将InputStream当中的数据取出,并写入到OutputStream当中
while((temp=inputStream.read(buffer))!=-1)
5
{
outputStream.write(buffer,0,temp);}
outputStream.flush();}
TCP协议服务器端实现:
//声明一个ServerSocket对象
ServerSocketserverSocket=null;
try{
//创建一个ServerSocket对象,并让这个Socket在4567端口监听
serverSocket=newServerSocket(4567);
//调用ServerSocket的accept()方法,接受客户端所发送的请求,
//如果客户端没有发送数据,那么该线程就停滞不继续
Socketsocket=serverSocket.accept();
//从Socket当中得到InputStream对象
InputStreaminputStream=socket.getInputStream();
bytebuffer[]=newbyte[1024*4];
inttemp=0;
//从InputStream当中读取客户端所发送的数据
while((temp=inputStream.read(buffer))!=-1)
{
System.out.println(newString(buffer,0,temp));}
}
catch(IOExceptione)
{
e.printStackTrace();}
serverSocket.close();
}
UDP方式
UDP的客户端代码实现如下:
public static void main(String[]args)
{
try{
//首先创建一个DatagramSocket对象
DatagramSocket socket=new DatagramSocket(4567);
//创建一个InetAddree
6
InetAddress serverAddress=InetAddress.getByName("192.168.1.104");
String str="hello";
//这是要传输的数据
byte data[]=str.getBytes();
//把传输内容分解成字节
//创建一个DatagramPacket对象,并指定要讲这个数据包发送到网
络当中的哪个地址,以及端口号
DatagramPacket packet=new
DatagramPacket(data,data.length,serverAddress,4567);
//调用socket对象的send方法,发送数据
socket.send(packet);}
catch(Exceptione)
{
e.printStackTrace();}
}
UDP的服务端代码实现如下:
//创建一个DatagramSocket对象,并指定监听的端口号
DatagramSocket socket=new DatagramSocket(4567);
bytedata[]=newbyte[1024];
//创建一个空的DatagramPacket对象
DatagramPacket packet=new DatagramPacket(data,data.length);
//使用receive方法接收客户端所发送的数据,
//如果客户端没有发送数据,该进程就停滞在这里
socket.receive(packet);
Stringresult=newString(packet.getData(),packet.getOffset(),
packet.getLength());
System.out.println("result--->"+result);
追问
我要的手机建立服务器。你连ip的获取都没,这不还是建立电脑上的服务器端口么。而且你给的ip地址都是192。168的局域网内部ip。这种ip能用3G连接么?
来自:求助得到的回答
Storm代理
2023-06-05 广告
2023-06-05 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |