精华内容
下载资源
问答
  • 移动开发 Android Socket Socket发送并接收服务器返回的数据 个人整理 。
  • GPRS数据接收服务器

    热门讨论 2011-06-06 19:56:23
    GPRS数据接收的服务端。在静态IP地址的服务器上运行,可以接收GPRS发送的数据,并且可以和GPRS客户端进行发送信息。接收到的信息可以导出为Excel文件。
  • 引言 因为我确实不懂TCP通信这一块儿,最近项目中要实现客户端接收服务器端发送过来的数据(这个数据是int型的,范围是0~360,而且服务器端用C语言写的,每一秒发送一次,客户端只需要不断接收就好了),很开心的用...

    引言

       因为我确实不懂TCP通信这一块儿,最近项目中要实现客户端接收服务器端发送过来的数据(这个数据是int型的,范围是0~360,而且服务器端用C语言写的,每一秒发送一次,客户端只需要不断接收就好了),很开心的用BufferedReader读取数据,结果发现一直读取不到数据,这下就慌了,搞了整整半天才用DataInputStream通过byte读取到数据。

    一、BufferedReader

           BufferedReader可以从字符输入流中读取文本,通过缓存来达到高效的读取字符、数组等数据。

           说白了用它是因为它比较高效,它里边默认缓冲区的大小是8k。说下它的两个主要的函数:

           1.Read()   读取并返回一个单一的字符,做为int类型返回,这个类型的范围是0~65535,因为一个char的范围是-128~128,实际值是-128~127,当读取的值大于等于128时,返回的均是65535,具体代码如下:

    public class TcpConnection extends Thread {
        private String ipAddress;
        private int ipPort;
        TcpResult tcpResult;
    
        public TcpResult getTcpResult() {
            return tcpResult;
        }
    
        public void setTcpResult(TcpResult tcpResult) {
            this.tcpResult = tcpResult;
        }
    
        public TcpConnection(String address, int port) {
            this.ipAddress = address;
            this.ipPort = port;
        }
    
        Socket socket;
        InputStream is;
        BufferedReader br;
    
    
        @Override
        public void run() {
            super.run();
            try {
                socket = new Socket(ipAddress, ipPort);
                 socket.setSoTimeout(20000);
                if (socket.isConnected() && !socket.isClosed()) {
                    is = socket.getInputStream();
                    Log.e("test", "connect success");
    
                    br = new BufferedReader(new InputStreamReader((is));
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            int data = 0;
                            try {
                                while ((data=br.read())!=-1) {
    
                                    Log.e("test", "data="+data);
                                    tcpResult.onSuccess(data);
                                }
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }).start();
    
                }
    
    
            } catch (IOException e) {
                e.printStackTrace();
                Log.e("test", e.toString());
               // tcpResult.onFailed(e.toString());
                close();
            }
        }
    
    
        public void close() {
            Log.e("test", "连接断开");
            CloseUtil.closeQuiety(br);
            CloseUtil.closeQuiety(is);
            CloseUtil.closeQuiety(socket);
        }
    
        public interface TcpResult {
            void onSuccess(int result);
    
            void onFailed(String error);
        }
    
    }

    为了不让C端的工程师觉得我太菜,我自己用安卓写了服务器端先自测,服务器端的代码为:

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ServerThread st = new ServerThread();
            new Thread(st).start();
        }
    
    
        class ServerThread implements Runnable {
    
            @Override
            public void run() {
                try {
                    ServerSocket ss = new ServerSocket(2000);
                    while (true) {
                        Socket socket = ss.accept();
                        if (socket.isConnected()) {
                            OutputStream os = socket.getOutputStream();
                            sendData(os);
                            Log.e("test", "发送成功");
                            os.close();
                        }
                        socket.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    Log.e("test", "error" + e.toString());
                }
            }
        }
    
        private void sendData(OutputStream outputStream) {
            for (int i = 1; i < 360; i++) {
                try {
                    Thread.sleep(1000);
                    outputStream.write(i);
                    Log.e("test", "发送了" + i);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    结果是,客户端接收到的数据1~127均没有问题,128开始就是65535,我一下子就懵了,各种百度,就是因为char只能表示一个字符,而一个整数有4个字符,相当于没读完数据,所以会有问题。

    在BufferedReader中有一个readLine()方法,它相当于读取每句话,或者到\n(换行)或者\r(回车)才会截止,实际代码为把上边客户端的接收数据的线程改为如下代码:

    final BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(is));
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                String data;
                while ((data=bufferedReader.readLine())!=null) {
                    Log.e("test", data + "  **");
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }).start();

    这样写明显不行,服务器端是不断发送int型数据,我这边用String接收,服务器端不可能每次发完一个数据给我加个“\n”或者"\r"结束,到这里好烦躁,一直各种百度,网上都是这种方法,还有一个read(char[] cbuf,int off,int len),这个方法返回的是一个字符数组,也不行。

    二.DataInputStream

      后来写c的老大实在等不了我了,找我的小伙伴给我帮忙,小伙伴问我要不试试用byte读取,因为流都是以byte的形式传输的,所以这样读肯定没有问题,于是我试着用DataInputStream来读取数据,代码如下:

    public class TcpConnection extends Thread {
        private String ipAddress;
        private int ipPort;
        TcpResult tcpResult;
    
        public TcpResult getTcpResult() {
            return tcpResult;
        }
    
        public void setTcpResult(TcpResult tcpResult) {
            this.tcpResult = tcpResult;
        }
    
        public TcpConnection(String address, int port) {
            this.ipAddress = address;
            this.ipPort = port;
        }
    
        Socket socket;
        InputStream is;
        DataInputStream dis;
    
    
        @Override
        public void run() {
            super.run();
            try {
                socket = new Socket(ipAddress, ipPort);
                socket.setSoTimeout(20000);
                if (socket.isConnected() && !socket.isClosed()) {
                    is = socket.getInputStream();
                    Log.e("test", "connect success");
                    final byte[] bytes = new byte[2];
                    dis = new DataInputStream(is);
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            int len = 0;
                            try {
                                while ((len = dis.read(bytes)) != -1) {
    
                                    int value1 = bytes[0] & 0xff;
                                    int value2 = bytes[1] & 0xff;
                                    int iii = (int) ((value2 & 0xff) << 8) | ((value1 & 0xff) << 0);
                                    Log.e("test", "len=" + len + "  " + value1 + " ** " + value2 + "  " + "  " + iii);
                                    tcpResult.onSuccess(iii);
                                }
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }).start();
                }
            } catch (IOException e) {
                e.printStackTrace();
                Log.e("test", e.toString());
                //      tcpResult.onFailed(e.toString());
                close();
            }
        }
        public void close() {
            Log.e("test", "连接断开");
            CloseUtil.closeQuiety(dis);
            CloseUtil.closeQuiety(is);
            CloseUtil.closeQuiety(socket);
        }
    
        public interface TcpResult {
            void onSuccess(int result);
            void onFailed(String error);
        }
    }
    

     这样写最终没有问题,从服务器端接收到的数据最终完美的转了过来,至此,谢谢我的小伙伴的提醒,哈哈~~

       2018年4月4日补加:上边定义的byte数组的大小是2,问题刚好出在这儿,因为一个int型的整数包含4个byte,就会出现收到的第一组数据为正常数据,第二组数据为两个0,即收到一个int型的数据会接收两次,第一次为两个byte,第二次也为两个byte,一个数据也接收了两次,所以要改变数组的大小为4。

     解释下下边这块儿代码:

    while ((len = dis.read(bytes)) != -1) {
    
        int value1 = bytes[0] & 0xff;
        int value2 = bytes[1] & 0xff;
        int iii = (int) ((value2 & 0xff) << 8) | ((value1 & 0xff) << 0);
        Log.e("test", "len=" + len + "  " + value1 + " ** " + value2 + "  " + "  " + iii);
        tcpResult.onSuccess(iii);
    }
    因为如果服务器端传过来的数据是360,360转成二进制就是101101000,是9位,所以传过来的就是两个byte,所以byte[0]转成整型就是104(二进制为1101000),byte[1]转成int就是1(二进制是00000001),所以要想得到360,就需要把byte[1]左移8位再加上byte[0],然后把它们转成int才可以,
    int iii = (int) ((value2 & 0xff) << 8) | ((value1 & 0xff)

    这句就是实现了上边的要求,最终可以打印出360,在Java中"|"这个符号是“位运算符”或(二进制,相应的二进制位上只要有一个为1,结果就为1,两个都为0的话结果为0)。研究出来对我这种基础不好的人来说真的是耗费了太多的时间。

     其实我自己写的服务器端(上边的代码),如果直接发送整型数据的话,这边的收到的会有问题,但是这边接收C发送的数据没有问题,如果Java写的服务器端想要把数据发过来并成功接收的话,需要把整型数据写成字符串,通过

    "data".getBytes();

    来发送,如果是int型的话,发送"360".getBytes(),才可以。

    至此,终于完成了接收数据这项任务,说到底还是要好好努力啊!


    展开全文
  • 这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收数据以及终止连接。 TCP是提供面向连接的,可靠的字节流服务。面向连接是TCP在...
  • //用GET方法向服务器传送数据,在链接里面传值 str1 = URLEncoder.encode(str, "UTF-8"); URL url = new URL("http://120.27.103.151:8088/JWebDemoByIDE/MyServlet?name=" + str1 + "&age=23"); connection = ...

    注意:如果打开输出流了 客户端的请求方法是GET,就会请求到服务器的POST方法去



    安卓端:

    package com.example.k.servletdemo;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    
    import android.widget.TextView;
    
    import java.io.BufferedReader;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLDecoder;
    import java.net.URLEncoder;
    
    public class MainActivity extends Activity {
        private final int GETVALUE = 0,POSTVALUE = 1;
        Button sendGET, sendPOST;
        TextView t, sendPOSTtextView;
        String str = "梁嘉亮";
        String str1;
        Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case GETVALUE:
                        try {
                            msg.obj = URLDecoder.decode(msg.obj + "", "UTF-8");
                        } catch (UnsupportedEncodingException e) {
                            e.printStackTrace();
                        }
                        t.setText("" + msg.obj);
                        break;
                    case POSTVALUE:
                        sendPOSTtextView.setText("" + msg.obj);
                        break;
                    default:
                        break;
                }
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.layout);
            t = (TextView) findViewById(R.id.textView);
            sendPOSTtextView = (TextView) findViewById(R.id.textView2);
            sendPOST = (Button) findViewById(R.id.button1);
            sendGET = (Button) findViewById(R.id.button);
            sendGET.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            HttpURLConnection connection;
                            try {
                                //用GET方法向服务器传送数据,在链接里面传值
                                str1 = URLEncoder.encode(str, "UTF-8");
                                URL url = new URL("http://120.27.103.151:8088/JWebDemoByIDE/MyServlet?name=" + str1 + "&age=23");
                                connection = (HttpURLConnection) url.openConnection();
                                connection.setReadTimeout(5000);
                                connection.setRequestMethod("GET");
                                connection.setRequestProperty("charset", "UTF-8");
                                connection.setConnectTimeout(5000);
                                connection.setDoInput(true);
                                if (connection.getResponseCode() == 200) {
                                    InputStream in = connection.getInputStream();
                                    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                                    StringBuilder s = new StringBuilder();
                                    String line;
                                    while ((line = reader.readLine()) != null) {
                                        s.append(line);
                                    }
                                    reader.close();
                                    Message message = new Message();
                                    message.what = GETVALUE;
                                    message.obj = s.toString();
                                    handler.sendMessage(message);
                                }
                            } catch (Exception e) {
                                Log.i("ok", "有错误!");
                            }
                        }
                    }).start();
                }
            });
            sendPOST.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                URL url = new URL("http://120.27.103.151:8088/JWebDemoByIDE/MyServlet");
                                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                                connection.setRequestMethod("POST");
                                connection.setConnectTimeout(5000);
                                connection.setReadTimeout(5000);
                                connection.setRequestProperty("charset", "UTF-8");
                                connection.setDoOutput(true);
                                DataOutputStream out = new DataOutputStream(connection.getOutputStream());
                                //向服务器传送数据
                                out.writeBytes("Im Liang Jia Liang!");
                                if (connection.getResponseCode() == 200) {
                                    InputStream in = connection.getInputStream();
                                    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                                    StringBuilder s = new StringBuilder();
                                    String line;
                                    //读取服务器返回的数据
                                    while ((line = reader.readLine()) != null) {
                                        s.append(line);
                                    }
                                    Message message = new Message();
                                    message.what = POSTVALUE;
                                    message.obj = s.toString();
                                    handler.sendMessage(message);
                                    reader.close();
                                }
                                out.close();
                            } catch (MalformedURLException e) {
                                e.printStackTrace();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }).start();
                }
            });
        }
    }

    记得要声明一下网络权限:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <manifest package="com.example.k.servletdemo" xmlns:android="http://schemas.android.com/apk/res/android">
    
    <uses-permission android:name="android.permission.INTERNET"/>
    
    
    <application android:theme="@style/AppTheme" android:supportsRtl="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:allowBackup="true">
    
    
    <activity android:name=".MainActivity">
    
    
    <intent-filter>
    
    <action android:name="android.intent.action.MAIN"/>
    
    <category android:name="android.intent.category.LAUNCHER"/>
    
    </intent-filter>
    
    </activity>
    
    </application>
    
    </manifest>
    布局文件:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <LinearLayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
    
    <Button android:layout_height="wrap_content" android:layout_width="match_parent" android:text="sendGET" android:id="@+id/button"/>
    
    <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/textView"/>
    
    <Button android:layout_height="wrap_content" android:layout_width="match_parent" android:text="sendPOST" android:id="@+id/button1"/>
    
    <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/textView2"/>
    
    </LinearLayout>

    以下是服务器端:(服务器用的是tomcat,虚拟主机是阿里云的ECS)

    package com.iotek.jee.servlet;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class MyServlet extends HttpServlet {
    	private static final long serialVersionUID = -9122125709896866661L;
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	//获取http://120.27.103.151:8088/JWebDemoByIDE/MyServlet?name=liangjialiang 问号后面的值	
    	String name = req.getParameter("name");
    	String age = req.getParameter("age");
    		resp.getWriter().write(name);
    	}
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		BufferedReader b =  req.getReader();
    		String line;
    		StringBuilder s = new StringBuilder();
    		while((line = b.readLine())!=null){
    			s.append(line);
    		}
    		resp.getWriter().write(s.toString());
    	}
    	@Override
    	protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		
    	}
    	@Override
    	protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		
    	}
    }
    
    服务器web.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>JWebDemoByIDE</display-name>
      <servlet>
      <servlet-name>MyServlet</servlet-name>
      <servlet-class>com.iotek.jee.servlet.MyServlet</servlet-class>
      </servlet>
      <servlet-mapping>
      <servlet-name>MyServlet</servlet-name>
      <url-pattern>/MyServlet</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
    服务器就两个文件如下图:

    运行效果图如下:



    展开全文
  • STM32通过串口如何接收服务器发来的数据代码如下:在stm32f10x_it.c中的代码 void USART1_IRQHandler(void) { u8 GetData; if(USART_GetITStatus(USART1, USART_IT_RXNE)!=RESET) { USART_ClearITPendingBit...

    STM32通过串口如何接收服务器发来的数据代码如下:

    //在stm32f10x_it.c中的代码
    void USART1_IRQHandler(void)
    {  
      u8 GetData;
      if(USART_GetITStatus(USART1, USART_IT_RXNE)!=RESET)
      {
        USART_ClearITPendingBit(USART1,USART_IT_RXNE);
        GetData=(u8)USART_ReceiveData(USART1)&0xff;
    
        Usart1_buf[usart1_lent]=GetData;
        usart1_lent++;
      }
    
      if (USART_GetITStatus(USART1, USART_IT_TC) != RESET) 
      {
        USART_ITConfig(USART1, USART_IT_TC, DISABLE);
        USART_ClearITPendingBit(USART1, USART_IT_TC);
      }
      if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET)
      {
        USART_ClearFlag(USART1,USART_FLAG_ORE); 
        USART_ReceiveData(USART1); 
      }   
    }
    
    //main()函数中的代码
    //服务器发来的数据放在Usart1_buf数组中
    u8 Usart1_buf[256];
    unsigned int usart1_lent = 0;
    void check_ser(void) 
    {
          a = strstr(Usart1_buf, "1");
          b = strstr(Usart1_buf, "12");
          c = strstr(Usart1_buf, "123");
          d = strstr(Usart1_buf,"1234");
          
          if(NULL != a && usart1_lent==1)//当服务器发来1时干某事
          {
           
          }
          else if(NULL != b && usart1_lent==2)//当服务器发来12时干某事
          {
            
          }
          else if(NULL != c && usart1_lent==3)//当服务器发来123时干某事
          { 
            
          }
          else if(NULL != d && usart1_lent==4)//当服务器发来1234时干某事
          {
            
          }
          else if(Usart1_buf[0]=='['&&Usart1_buf[17]==']'&& usart1_lent==18)//判断是否为获取时间参数
          {
           
          }
          else if (Usart1_buf[0]=='O'&&Usart1_buf[1]=='K' && usart1_lent==2)//判断是否为普通心跳返回
          {
            
          }
    }

    展开全文
  • Ajax接收服务器端返回信息

    千次阅读 2018-07-13 18:04:26
    ajax接收服务器端返回的信息,需要结合readyState/onreadystatechange/responseText一起使用:ajax属性和方法介绍:ajax事件onreadystatechange最多感知四种状态:获取到服务器端内容:ajax常用请求方法...

    Ajax可以接收什么信息?

    浏览器可以接收的信息ajax都可以接收,例如字符串、html标签、css样式内容、xml内容、json内容等。

    ajax接收服务器端返回的信息,需要结合readyState/onreadystatechange/responseText一起使用:

    服务器端01.php:

    <?php
    	echo "<div style='color:green;'>恭喜,该用户名可以使用</div>";

    客户端01-response.html:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>ajax接收服务器信息</title>
    	<script type="text/javascript">
    	function f1(){
    		//ajax发起请求并接收返回的信息
    		
    		//第一步:创建对象
    		var xhr = new XMLHttpRequest();
    
    		//第四步:给ajax设置事件
    		xhr.onreadystatechange = function(){
    			// console.log(xhr.readyState);
    		 if(xhr.readyState==4){
    			  // 把服务器端返回的信息显示到页面上
    			  document.getElementById('result').innerHTML = xhr.responseText;
    		   }
    		}
    
    		//第二步:创建新的http请求
    		xhr.open('get', '01.php');
    
    		//第三步:发送请求
    		xhr.send(null);
    	}
    	</script>
    </head>
    <body>
    	<h2>ajax接收服务器端返回的信息</h2>
    	<input type="button" value="触发" οnclick="f1()">
    	<div id="result"></div>
    </body>
    </html>

    执行效果:


    ajax属性和方法介绍:

    属性:

        responseText: 以字符串形式接收服务器端返回的信息
        readyState:
            0: 刚创建ajax对象
            1:已经调用open方法
            2:已经调用send方法
            3:已经返回部分数据
            4:请求完成,数据返回完整
        onreadystatechange: 事件,当ajax状态readyState发生变化的时候要触发执行
        为了获得较多创建好ajax的状态,最好在创建好ajax对象后就设置
        最多可以感知1 2 3 4 四种状态

    方法:

        open() 创建新的http请求

        send() 把请求发送到服务器端

    ajax事件onreadystatechange最多感知四种状态:

    获取到服务器端内容:

    ajax常用请求方法:

    ajax常用属性:

    ajax的五种状态readyState及状态码和状态值:


    展开全文
  • mqtt接收数据并保存

    2018-01-04 16:56:14
    使用java语言,接收mqtt传输来的数据,并进行保存,里面包含所需的jar包
  • java 代码post表单数据服务器,servlet接收处理
  • Socket soc=null; InputStream in=null; OutputStream out=null;... 这个是我通过短连接的方式向服务器发送的数据,怎样接收服务器返回的数据,求各位大神补充一下,之前没写过这种连接方式的代码。
  • public void receiveCmdList()  {  string url = "http://1111"... //服务器地址url  string response = Post(data, url, false, 6);//调用HTTP通信接口提交数据 --data为发送的数据--response为接收数据  
  • MQTT连接服务器发送和接收数据

    万次阅读 2015-10-14 11:41:06
     //接收和发送数据  NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];  NSString *senderString = [topic substringFromIndex:self.base.length + 1];   ...
  • 1、flask上传服务器运行方法 if __name__ == '__main__': app.run(host='0.0.0.0',port=8085,debug=True) 需要绑定开通个对应域名和端口... 2、flask前端json数据接收处理 a、post 提交端web import requests ...
  • 使用qt 框架编写了一个http协议post请求数据的测试代码,如下 QString string;...但是我在post时,对方服务器接收数据为空,我这边字节数组里,明明有数据?问题到底出现在哪里,是我的post格式不正确吗?
  • DTU服务器接收软件

    千次阅读 2019-04-27 10:44:09
    我们使用DTU的时候,往往需要搭建服务器接收DTU的数据,这里推荐一款软件,安装到服务器上,接收DTU的远程数据,并且能够通过虚拟串口输出给应用程序,方便至极。 工具/原料 MX虚拟串口软件 MX虚拟串口官方下载:...
  • 接收与转换数据 msg = msg.ToString().TrimEnd( '\0' ); string [] striparr = msg.ToString().Split( new string [] { "\r\n" }, StringSplitOptions.None); striparr = striparr.Where(s => ! string ....
  • Netty接收数据流程(源码)

    千次阅读 2020-04-20 11:34:44
    Netty接收数据主线: 多路复用器(Selector)接收到OP_READ事件 处理OP_READ事件:NioSocketChannel.NioSocketChannelUnsafe.read() 分配一个初始1024字节的byte buffer来接收数据 从Channel接收数据到byte buffer ...
  • 最近在做一个socket的小项目,其中出现了一个问题,就是当我用socket接收服务器发送的数据后,无法输出接收到的数据或者输出的数据为乱码,经过几天的摸索,终于解决了这个问题,记录一下。不多说,直接上代码 ...
  • 写了个简单出例子测试,客户端发送数据服务器端死收不到,结果发现,客户端发送时,最终发送出去的格式应该是ByteBuf格式才行,修改如下: channel.writeAndFlush(Unpooled.buffer().writeBytes(data.getBytes()))...
  • Java实现与FTP服务器数据传输2

    热门讨论 2015-11-12 16:53:20
    Java实现与FTP服务器数据传输。 其中包含了两种实现方法。详情请参见本人博客: http://blog.csdn.net/lemon_tree12138/article/details/49777467
  • JAVA服务器接收数据问题

    千次阅读 2016-08-02 23:20:09
    java服务器接收参数
  • 做微信公众号开发,微信通过URL发送数据到我的服务器80端口,wifi模块通过tcp发送数据到另一个端口。请问怎样才能让微信发送的指令到wifi模块,控制单片机呢?
  • 2.在服务器接收和处理,下面是在servlet里的一个方法,它的作用是利用request接收请求的数据,并把它转化为字符串 private String readJSONStringFromRequestBody(HttpServletRequest request){ ...
  • 关于post数据服务器接收不全

    千次阅读 2017-08-22 09:58:13
    post数据接收不全的问题
  • 服务器端每接收一次Socket管道,就分配一个独立的线程来处理客户端发送的数据,便能实现一个服务器接收多个客户端的数据。 客户端开发流程: 1.创建客户端Socket对象,输入服务器的IP和端口号,请求连接服务器端; ...
  • QT TCP服务器接收不到数据的问题

    千次阅读 2020-02-16 21:34:43
    服务器给客户端发送数据正常,但服务器始终接收不到客户端发来的数据。readyRead信号和槽函数返回值也为true。 解决办法 readyRead信号需要放在nextPendingConnection()函数后面。 socket = tcpserver->...
  • 第二部分是通讯系统,是将定位系统运算出来的坐标信息、车子状态信息传输给服务器或者你的手机,这部分大多是通过移动或者联通信号完成的,有的通过发短信完成,有的通过GPRS连接因特网传输数据来完成。看自己使用的...
  • 发送指令A1 58 01 02 05 01 01 02 02 01 03 86 客户端会恢复消息,用网络调试助手显示是A1 58 01 02 05 01 01 02 02 01 00 03 请问应该怎么写?
  • //服务器为每一个连接客户端产生一个线程,这样接受多个连接: private TcpListener tcpListener; private Thread listenThread; public Server() {  this.tcpListener = new TcpListener(IPAddress....
  • 1.服务器接收不到数据解决方法:我发送的形式是直接将字符串转成字节流,按照tcp协议进行发送的。一开始服务器能看到客户端接入了,但是就是收不到消息。后来在字符串的末尾加上了'\n'换行符就行了。2.服务器发送...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 841,113
精华内容 336,445
关键字:

数据接收服务器