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); ?>
相关文章推荐
- java-模拟tomcat服务器
- Linux socket 初步
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析