Android編程:Socket編寫

來源:互聯網
上載者:User

 

 

TCP Socket用戶端編寫

 

 public class SocketActivity extends Activity {<br />private Button startButton = null;<br /> /** Called when the activity is first created. */<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.main);<br /> startButton = (Button)findViewById(R.id.startButton);<br /> startButton.setOnClickListener(new StartSocketListener());<br /> }<br /> class StartSocketListener implements OnClickListener{</p><p>@Override<br />public void onClick(View v) {<br />// TODO Auto-generated method stub<br />new ServerThread().start();<br />}</p><p> }<br /> class ServerThread extends Thread{</p><p>@Override<br />public void run() {<br />// TODO Auto-generated method stub<br />//聲明一個serverSocket對象<br />ServerSocket serverSocket = null;<br />try{<br />//建立一個serverSocket對象,並讓這個Socket在4567連接埠監聽<br />serverSocket = new ServerSocket(4567);<br />//調用serverSocket的accept()方法,接受用戶端所以發送的請求<br />Socket socket = serverSocket.accept();<br />//從Socket當中得到InputStream對象<br />InputStream inputStream = socket.getInputStream();<br />byte buffer [] = new byte[1024*4];<br />int temp = 0;<br />//從InputStream當中讀取用戶端所發送的資料<br />while ((temp = inputStream.read(buffer)) != -1){<br />System.out.println(new String(buffer,0,temp));<br />}<br />}catch(IOException e){<br />e.printStackTrace();<br />}<br /> finally{<br /> try{<br /> serverSocket.close();<br /> }catch (IOException e){<br /> e.printStackTrace();<br /> }<br /> }<br />}<br /> }<br /> }

 

TCP用戶端編寫

 

public class TCPClient {</p><p>/**<br /> * @param args<br /> */<br />public static void main(String[] args) {<br />// TODO Auto-generated method stub<br />try{<br />//建立一個Socket,指定伺服器端的IP地址和連接埠號碼<br />Socket socket = new Socket("192.168.1.104",4567);<br />//使用InputStream讀取硬碟上的一個檔案<br />InputStream inputStream = new FileInputStream("f://file/word.txt");<br />//從Socket當中得到OutputStream<br />OutputStream outputStream = socket.getOutputStream();<br />byte buffer[] = new byte[4*1024];<br />int temp = 0;<br />//將InputStream中的資料讀出,並寫入到OutputStream中<br />while ((temp = inputStream.read(buffer)) != -1){<br />outputStream.write(buffer,0,temp);<br />}<br />outputStream.flush();<br />}catch (Exception e){<br />e.printStackTrace();<br />}<br />}<br />}<br />

 

 

UDP伺服器端編寫

public class SocketActivity extends Activity {<br />private Button startButton = null;<br /> /** Called when the activity is first created. */<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.main);<br /> startButton = (Button)findViewById(R.id.startButton);<br /> startButton.setOnClickListener(new StartSocketListener());<br /> }<br /> class StartSocketListener implements OnClickListener{</p><p>@Override<br />public void onClick(View v) {<br />// TODO Auto-generated method stub<br />new ServerThread().start();<br />}</p><p> }<br /> class ServerThread extends Thread{</p><p> public void run(){<br /> try{<br /> //建立一個DatagramSocket對象,並指定的監聽的連接埠號碼<br /> DatagramSocket socket = new DatagramSocket(4567);<br /> byte data[] = new byte[4*1024];<br /> //建立一個空的DatagramPacket<br /> DatagramPacket packet = new DatagramPacket(data,data,length);<br /> //使用receive方法接收用戶端發送的資料<br /> socket.receive(packet);<br /> String result = new String(packet.getData(),packet.getOffset(),packet.getLength());<br /> System.out.println("result---->" + result);<br /> }catch (Exception e){<br /> e.printStackTrace();<br /> }<br /> }<br /> }<br /> }

 

UDP用戶端編寫

 

 

 

 public class UDPClient {</p><p>/**<br /> * @param args<br /> */<br />public static void main(String[] args) {<br />// TODO Auto-generated method stub<br />try{<br />//建立一個DatagramSocket對象<br />DatagramSocket socket = new DatagramSocket(4567);<br />//建立一個InetAddress對象<br />InetAddress serverAddress = InetAddress.getByName("192.168.1.104");<br />String str = "hello";<br />byte data[] = str.getBytes();<br />//建立一個DatagramPacket對象,並指定要將這個資料包發送到網路中的哪個地址,以及連接埠號碼<br />DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,4567);<br />//調用socket對象的send方法發送資料<br />socket.send(packet);<br />}catch(Exception e){<br />e.printStackTrace();<br />}<br />}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.