您的位置:首页 > 移动开发 > Android开发

Android Socket

2016-07-04 16:15 447 查看
//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);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android socket