public void handleMessage(Message msg) { switch (msg.what) { case ChatServer.SERVER_TAG: Bundle bundle = msg.getData(); Toast.makeText(MainActivity.this, bundle.getString(ChatServer.MSG_KEY), Toast.LENGTH_LONG).
/** * 16进制byte转16进制String--用空格隔开 * @param bytes * @return */ public static String byteToHexStr(byte[] bytes) { String str_msg = ""; for (int i = 0; i < bytes.length; i++){ str_msg = str_msg + String.format("%02X",bytes[i])+" "; } return str_msg; } 1...
两个控制块里面的函数何时调用,怎么使用,将在后面TCP移植处说明。 这里说一下简单的配置: 1.打开新建工程Device目录下RTE_Device.h文件,查找RTE_ETH宏,修改成1。 2.因为我们要使用RMII接口,所以确保RTE_Device.h下,宏RTE_ETH_MII为0,宏RTE_ETH_RMII为1,并查看一下GPIO的配置,默认如下: 你没修改其他配置的...
HANDLE hNewThread = NULL ; while(bFlagSvcOn){ clisock = pdlg-sockOpr.SockAccept(sock1,cliAddr) ; pdlg-m_socket = clisock ; if( INVALID_SOCKET != pdlg-m_socket){ hNewThread = CreateThread(NULL,0,RecvProc,pdlg,0,NULL) ; CloseHandle(hNewThread) ; clisock= INVALID_SOCKET ; } } ...
18.2.1I/O复用—selectselect函数定义如下:intselect(intnfds,fd_setFAR*readfds,fd_setFAR*writefds,fd_setFAR*exceptfds,conststructtimevalFAR*timeoutrecvselect);recv阻塞至有数据可读select等待有数据可读 recv返回 recv立即返回 图18.2select的使用 18.2.1I/O复用—select 图18.3select模型的...
handleMessage(Message msg) { // 如果消息来自于子线程 if (msg.what == 0x123) { // 将读取的内容追加显示在文本框中 show.append("\n" + msg.obj.toString()); } } }; clientThread = new ClientThread(handler); // 客户端启动ClientThread线程创建网络连接、读取来自服务器的数据 new Thread(...