• 大小: 2.46MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-11
  • 语言: Java
  • 标签: socket  QT  Android  

资源简介

这里实现一个跨平台的socket通讯,Android手机作为客户端向Ubuntu的QT平台上的服务端发送一个字符命令,由于是只发送一个字符,这里我尽可能简化socket通讯的过程以供后人参考。解决了跨平台的socket传输字符编码转换的问题。我的文章地址:http://blog.csdn.net/u013453604/article/details/47733923

资源截图

代码片段和文件信息

//package com.defonds.socket.begin;  
  
import java.io.BufferedReader;  
import java.io.DataInputStream;  
import java.io.DataOutputStream;  
import java.io.InputStreamReader;  
import java.net.ServerSocket;  
import java.net.Socket;  
  
public class Server {  
    public static final int PORT = 60000;//监听的端口号     
      
    public static void main(String[] args) {    
        System.out.println(“服务器启动...\n“);    
        Server server = new Server();    
        server.init();    
    }    
    
    public void init() {    
        try {    
            ServerSocket serverSocket = new ServerSocket(PORT);    
            while (true) {    
                // 一旦有堵塞 则表示服务器与客户端获得了连接    
                Socket client = serverSocket.accept();    
                // 处理这次连接    
                new HandlerThread(client);    
            }    
        } catch (Exception e) {    
            System.out.println(“服务器异常: “ + e.getMessage());    
        }    
    }    
    
    private class HandlerThread implements Runnable {    
        private Socket socket;    
        public HandlerThread(Socket client) {    
            socket = client;    
            new Thread(this).start();    
        }    
    
        public void run() {    
            try {    
                // 读取客户端数据    
                DataInputStream input = new DataInputStream(socket.getInputStream());  
                String clientInputStr = input.readUTF();//这里要注意和客户端输出流的写方法对应否则会抛 EOFException  
                // 处理客户端数据    
                System.out.println(“客户端发过来的内容:“ + clientInputStr);    
    
                // 向客户端回复信息    
                DataOutputStream out = new DataOutputStream(socket.getOutputStream());    
                //System.out.print(“请输入:\t“);    
                // 发送键盘输入的一行    
                //String s = new BufferedReader(new InputStreamReader(System.in)).readLine();    
                //out.writeUTF(s);    
                  
                out.close();    
                input.close();    
            } catch (Exception e) {    
                System.out.println(“服务器 run 异常: “ + e.getMessage());    
            } finally {    
                if (socket != null) {    
                    try {    
                        socket.close();    
                    } catch (Exception e) {    
                        socket = null;    
                        System.out.println(“服务端 finally 异常:“ + e.getMessage());    
                    }    
                }    
            }   
        }    
    }    
}    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-08-17 23:39  Android与QT实现socket通信\
     文件        2737  2015-08-16 21:02  Android与QT实现socket通信\Server.java
     目录           0  2015-08-17 23:37  Android与QT实现socket通信\test1\
     文件         213  2015-08-17 22:04  Android与QT实现socket通信\test1\main.cpp
     文件        1649  2015-08-17 22:32  Android与QT实现socket通信\test1\mainwindow.cpp
     文件         531  2015-08-17 20:52  Android与QT实现socket通信\test1\mainwindow.h
     文件        1243  2015-08-17 20:33  Android与QT实现socket通信\test1\mainwindow.ui
     文件         380  2015-08-17 20:26  Android与QT实现socket通信\test1\test1.pro
     文件       18375  2015-08-17 21:39  Android与QT实现socket通信\test1\test1.pro.user
     文件          52  2015-08-17 23:38  Android与QT实现socket通信\test1\说明.txt
     目录           0  2015-08-17 23:38  Android与QT实现socket通信\Test_socket\
     文件         475  2015-08-14 16:31  Android与QT实现socket通信\Test_socket\.classpath
     文件         847  2015-08-14 16:31  Android与QT实现socket通信\Test_socket\.project
     目录           0  2015-08-17 23:36  Android与QT实现socket通信\Test_socket\.settings\
     文件         177  2015-08-14 16:31  Android与QT实现socket通信\Test_socket\.settings\org.eclipse.jdt.core.prefs
     文件         934  2015-08-16 16:43  Android与QT实现socket通信\Test_socket\AndroidManifest.xml
     目录           0  2015-08-14 16:31  Android与QT实现socket通信\Test_socket\assets\
     目录           0  2015-08-17 23:36  Android与QT实现socket通信\Test_socket\bin\
     文件         934  2015-08-16 22:04  Android与QT实现socket通信\Test_socket\bin\AndroidManifest.xml
     目录           0  2015-08-17 23:36  Android与QT实现socket通信\Test_socket\bin\classes\
     文件     1428276  2015-08-17 20:35  Android与QT实现socket通信\Test_socket\bin\classes.dex
     目录           0  2015-08-17 23:36  Android与QT实现socket通信\Test_socket\bin\classes\android\
     目录           0  2015-08-17 23:36  Android与QT实现socket通信\Test_socket\bin\classes\android\support\
     目录           0  2015-08-17 23:36  Android与QT实现socket通信\Test_socket\bin\classes\android\support\v7\
     目录           0  2015-08-17 23:36  Android与QT实现socket通信\Test_socket\bin\classes\android\support\v7\appcompat\
     文件         629  2015-08-17 17:57  Android与QT实现socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$anim.class
     文件        5136  2015-08-17 17:57  Android与QT实现socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$attr.class
     文件         763  2015-08-17 17:57  Android与QT实现socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$bool.class
     文件         594  2015-08-17 17:57  Android与QT实现socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$color.class
     文件        1530  2015-08-17 17:57  Android与QT实现socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$dimen.class
     文件        5191  2015-08-17 17:57  Android与QT实现socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$drawable.class
............此处省略103个文件信息

评论

共有 条评论