我想问下如何在手机上建立一个服务器,用Socket的方法如何实现。

我想问下如何在手机上建立一个服务器,用Socket的方法如何实现。,第1张

TCP方式:

TCP协议客户端实现:

//创建一个Socket对象,指定服务器端的IP地址和端口号

Socketsocket=newSocket("1921681104",4567);

//使用InputStream读取硬盘上的文件,这里只是用文件当做信息源,可以读取控件用户输入信息

InputStreaminputStream=new

FileInputStream("f://file/wordstxt");

//从Socket当中得到OutputStream

OutputStream outputStream=socketgetOutputStream();

bytebuffer[]=newbyte[41024];inttemp=0;

//将InputStream当中的数据取出,并写入到OutputStream当中

while((temp=inputStreamread(buffer))!=-1)

5

{

outputStreamwrite(buffer,0,temp);}

outputStreamflush();}

TCP协议服务器端实现:

//声明一个ServerSocket对象

ServerSocketserverSocket=null;

try{

//创建一个ServerSocket对象,并让这个Socket在4567端口监听

serverSocket=newServerSocket(4567);

//调用ServerSocket的accept()方法,接受客户端所发送的请求,

//如果客户端没有发送数据,那么该线程就停滞不继续

Socketsocket=serverSocketaccept();

//从Socket当中得到InputStream对象

InputStreaminputStream=socketgetInputStream();

bytebuffer[]=newbyte[10244];

inttemp=0;

//从InputStream当中读取客户端所发送的数据

while((temp=inputStreamread(buffer))!=-1)

{

Systemoutprintln(newString(buffer,0,temp));}

}

catch(IOExceptione)

{

eprintStackTrace();}

serverSocketclose();

}

UDP方式

UDP的客户端代码实现如下:

public static void main(String[]args)

{

try{

//首先创建一个DatagramSocket对象

DatagramSocket socket=new DatagramSocket(4567);

//创建一个InetAddree

6

InetAddress serverAddress=InetAddressgetByName("1921681104");

String str="hello";

//这是要传输的数据

byte data[]=strgetBytes();

//把传输内容分解成字节

//创建一个DatagramPacket对象,并指定要讲这个数据包发送到网

络当中的哪个地址,以及端口号

DatagramPacket packet=new

DatagramPacket(data,datalength,serverAddress,4567);

//调用socket对象的send方法,发送数据

socketsend(packet);}

catch(Exceptione)

{

eprintStackTrace();}

}

UDP的服务端代码实现如下:

//创建一个DatagramSocket对象,并指定监听的端口号

DatagramSocket socket=new DatagramSocket(4567);

bytedata[]=newbyte[1024];

//创建一个空的DatagramPacket对象

DatagramPacket packet=new DatagramPacket(data,datalength);

//使用receive方法接收客户端所发送的数据,

//如果客户端没有发送数据,该进程就停滞在这里

socketreceive(packet);

Stringresult=newString(packetgetData(),packetgetOffset(),

packetgetLength());

Systemoutprintln("result--->"+result);

package orgzhangkaipostdata;

import javaioIOException;

import javaioInputStream;

import javaioOutputStream;

import javanetHttpURLConnection;

import javanetMalformedURLException;

import javanetServerSocket;

import javanetSocket;

import javanetURL;

import javanetUnknownHostException;

import orgapachehttpprotocolHTTP;

import androidappActivity;

import androidosBundle;

import androidutilLog;

import androidviewView;

import androidwidgetButton;

public class postActivity extends Activity implementsRunnable{

Button btn ;

final String SERVER = "127001";

final int PORT = 1560;//在手机内部,端口号可以随便用,除了有固定用途的端口,比如80

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutmain);

btn = (Button)thisfindViewById(Ridsend);

btnsetOnClickListener(new ButtonOnClickListener(){

public void onClick(View v) {

try {

Socket socket = new Socket (SERVER,PORT);

OutputStream mOutput = socketgetOutputStream();

mOutputwrite("test"getBytes());

mOutputclose();

} catch (UnknownHostException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

}

});

new Thread (this)start();

}

public void run() {

try {

ServerSocket server = new ServerSocket (PORT);

Systemoutprintln("start accept");

Socket socket = serveraccept();

InputStream mInput = socketgetInputStream();

byte[] data = new byte[1400];

int length = mInputread(data);

Systemoutprintln("data:"+new String (data,0,length));

} catch (IOException e) {

eprintStackTrace();

}

}

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 我想问下如何在手机上建立一个服务器,用Socket的方法如何实现。

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情