开始学习socket了哦

下面这个是mars老师的一个范例。先学习一下吧!
其中包含了TCP的一个server的接收 和一个UDP的一个接收


 

package mars.socket;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SocketActivity extends Activity {
    /** Called when the activity is first created. */
 private Button startButton = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        startButton = (Button)findViewById(R.id.startListener);
        startButton.setOnClickListener(new StartSocketListener());
    }
    


    class StartSocketListener implements OnClickListener{

  @Override
  public void onClick(View v) {
   new ServerThread().start();        //当按钮按下就开始一个服务线程
    }
     
    }
    
    class ServerThread extends Thread{
     /*public void run(){
      //声明一个ServerSocket对象
      ServerSocket serverSocket = null;
      try {
       //创建一个ServerSocket对象,并让这个Socket在4567端口监听
    serverSocket = new ServerSocket(4567);
    //调用ServerSocket的accept()方法,接受客户端所发送的请求
    Socket socket = serverSocket.accept();
    //从Socket当中得到InputStream对象
    InputStream inputStream = socket.getInputStream();
    byte buffer [] = new byte[1024*4];
    int temp = 0;
    //从InputStream当中读取客户端所发送的数据
    while((temp = inputStream.read(buffer)) != -1){
     System.out.println(new String(buffer,0,temp));
    }
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   finally{
    try {
     serverSocket.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  
     }*/
     public void run(){
      try {
       //创建一个DatagramSocket对象,并指定监听的端口号
    DatagramSocket socket = new DatagramSocket(4567);
    byte data [] = new byte[1024];
    //创建一个空的DatagramPacket对象
    DatagramPacket packet = new DatagramPacket(data,data.length);
    //使用receive方法接收客户端所发送的数据
    socket.receive(packet);
    String result = new String(packet.getData(),packet.getOffset(),packet.getLength());
    System.out.println("result--->" + result);
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
     }
    }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值