Android Socket

//Android客户端
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    EditText etContent;
    Button btSend;
    TextView tvRecive;
    String result;

    /* 服务器地址 */
    private final String SERVER_HOST_IP = "192.168.206.41";
    /* 服务器端口 */
    private final int SERVER_HOST_PORT = 79;
    private Socket socket;
    private PrintStream output;
    private InputStream inputStream;
    private Handler handler;
    private String msg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
        handler = new Handler(new Handler.Callback() {
            @Override
            public boolean handleMessage(Message msg) {
                tvRecive.setText(tvRecive.getText().toString() + result);
                return false;
            }
        });
    }

    private void init(){
        etContent = (EditText) findViewById(R.id.et_content);
        btSend = (Button) findViewById(R.id.btn_send);
        btSend.setOnClickListener(this);
        tvRecive = (TextView) findViewById(R.id.tv_recive);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_send:
                new Mythread().start();
                break;
            default:
        }
    }

    class Mythread extends Thread {
        @Override
        public void run() {
            try {
            /* 连接服务器 */
                socket = new Socket(SERVER_HOST_IP, SERVER_HOST_PORT);
            /* 获取输出流 */
                output = new PrintStream(socket.getOutputStream(), true, "utf-8");
                msg = etContent.getText().toString().trim();
                output.write(msg.getBytes());
                output.flush();
            /* 获取输入流 */
                inputStream = socket.getInputStream();
                result += "\n " + new BufferedReader(new InputStreamReader(inputStream)).readLine();
                handler.sendEmptyMessage(1);
            } catch (UnknownHostException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    @Override
    public void finish() {
        super.finish();
    }
}
//php服务器socket
<?php
error_reporting(E_ALL);
set_time_limit(0);
//ob_implicit_flush();

$address = '192.168.206.41';
$port = 79;
//创建端口
if( ($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
    echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n";
}

//绑定
if (socket_bind($sock, $address, $port) === false) {
    echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";
}

//监听
if (socket_listen($sock, 5) === false) {
    echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";
}

do {
    //得到一个链接
    if (($msgsock = socket_accept($sock)) === false) {
        echo "socket_accepty() failed :reason:".socket_strerror(socket_last_error($sock)) . "\n";
        break;
    }
    //welcome  发送到客户端
    $msg = "<font color='red'>server send:welcome</font><br/>";
    socket_write($msgsock, $msg, strlen($msg));
    echo 'read client message\n';
    $buf = socket_read($msgsock, 8192);
    $talkback = "received message:$buf\n";
    echo $talkback;
    if (false === socket_write($msgsock, $talkback, strlen($talkback))) {
        echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) ."\n";
    } else {
        echo 'send success';
    }
    socket_close($msgsock);
} while(true);
//关闭socket
socket_close($sock);
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值