问题描述:拟在服务器上利用c或c++来编写服务器端程序,在android手机上编写客户端程序,实现通过手机客户端来访问服务器上的资源。由于在c中socket的使用方式跟Java中有一些不同,c中的使用方式比较麻烦,java中相对简单。本文中服务器端的环境是linux。若是windows,C Socket的使用方式会稍有不同。
Socket介绍
Socket(套接字)相当于一种特殊的IO。只不过平常的IO两端是程序(内存)和本地磁盘。而此处的两端是网络中的两个程序。也可以将socket看成是在程序两端建立起的一条管道,两个程序通过这条管道来交换数据。
Java中Socket的使用方式:
服务器端:
1. ServerSocket server=newServerSocket(6000);//创建服务器端的socket,并绑定端口6000
2. Socket socket=Server.accept();//接受客户端请求,并返回一个和客户端通信的socket
3. Socket.getInputStream();//利用socket来返回输入输出流,以后便是java的IO操作
4. Socket.getOutputStream();
5. 可以将outputStream->outputStreamWriter->bufferedWriter->PrintWriter,最后利用printwriter的println(str)方法就可以向对方传输数据。此种方法相对于直接使用bufferedWriter的好处是,不需要强制刷新缓冲区,前者需调用flush()方法。