精华内容
下载资源
问答
  • 发送的数据是0x21。0b0010,0001 刚开始一个拉低,代表数据开始传输。 然后先发送低位,后发送高位。111101000,01001111111

     

    发送的数据是0x21。0b0010,0001

    刚开始一个拉低,代表数据开始传输。

    然后先发送低位,后发送高位。111101000,01001111111

    展开全文
  • 发送图文的话,要开启客服功能,坑的话就是在通过ticket 上传图片的时候回比较慢  加上划红线的这段代码就行了, 其他没什么了,比较繁琐吧,没有报错,要往文本里写才可以看到报错...

    发送图文的话,要开启客服功能,坑的话就是在通过ticket 上传图片的时候回比较慢

     加上划红线的这段代码就行了,

    其他没什么了,比较繁琐吧,没有报错,要往文本里写才可以看到报错

    展开全文
  • 基于JavaMail的Java邮件发送:简单邮件发送

    万次阅读 多人点赞 2016-06-14 21:56:35
    电子邮件的应用非常广泛,例如在某网站注册了一个...但这些应用不可能和我们自己平时发邮件一样,打开浏览器,登录邮箱,创建邮件再发送。本文将简单介绍如何通过 Java 代码来创建电子邮件,并连接邮件服务器发...

    本文链接: https://blog.csdn.net/xietansheng/article/details/51673073

    电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等。但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送。本文将简单介绍如何通过 Java 代码来创建电子邮件,并连接邮件服务器发送邮件。

    1. 电子邮件协议

    电子邮件的在网络中传输和网页一样需要遵从特定的协议,常用的电子邮件协议包括 SMTP,POP3,IMAP。其中邮件的创建和发送只需要用到 SMTP协议,所以本文也只会涉及到SMTP协议。SMTP 是 Simple Mail Transfer Protocol 的简称,即简单邮件传输协议。

    2. JavaMail

    我们平时通过 Java 代码打开一个 http 网页链接时,通常可以使用已经对 http 协议封装好的 HttpURLConnection 类来快速地实现。Java 官方也提供了对电子邮件协议封装的 Java 类库,就是JavaMail,但并没有包含到标准的 JDK 中,需要我们自己去官方下载,这里我从 JavaEE 官方的 Github 仓库下载。

    JavaMail 下载地址: https://github.com/javaee/javamail/releases

    这里我下载的版本是 1.6.0 版本,包含了 SMTP, IMAP, 和 POP3 协议的实现的 jar 包:

    javaxmail.png

    我把 JavaMail 1.6.0 的 jar 包上传到了 CSDN,如果无法从 Github 下载,可以从 CSDN 下载(建议到Github下载,CSDN上我设了积分): http://download.csdn.net/download/xietansheng/9928266

    特别注意:

    • 本测试用例用的 JavaMail 版本是 1.6.0,如果下载到其他版本的 JavaMail 运行时出现问题,请使用 JavaMail 1.6.0 版本再进行尝试。
    • 使用 JavaMail 1.6.0 要求的 JDK 版本必须是 JDK 1.7 以上(建议使用最新版 JDK)。
    • 不要直接就完完全全复制我的代码,需要 修改一下发送的标题、内容、用户昵称,要不然所有人都直接复制我的代码发送(自己也不要反复发送内容相同的邮件),内容一致的邮件多次发送,邮箱服务器就可能会检测到这些内容是垃圾广告内容,不让你发送,会返回错误码,查询错误码也能查询到失败原因。

    有些童鞋反应代码提示某些类找不到,或运行出现问题,往往都是 JDK 版本过低,或 JavaMail 版本过低,出现问题时 请使用推荐的版本

    再出现问题,只要能连接成功,都有错误码返回,有些童鞋发送失败在控制台已经给出了错误码,大部分还给出了查看错误码含义的链接,点开链接,查询对应的错误码,为什么失败,已经明明白白的告诉你了,针对失败原因修改即可!

    邮件发送,涉及多端(本地代码端、邮件发送服务器端、邮件接收服务器端),保证自己的代码没问题了,不一定就能成功,你把你的邮件提交到邮件发送服务器,发送的服务器可以给你拒绝服务(比如认为发送的内容是垃圾广告,或者你频繁请求发送),这不是代码端能管的事情,但都有错误码返回,明确告诉你为什么错误。就算你发送成功了,对方也有可能接收不到,成功发送到对方的邮件接收服务器后,对方的服务器可以根据你的内容拒绝收你的邮件(比如认为你的内容是广告诈骗等信息,或者发送过于频繁),对方的服务器可能直接把你的邮件扔垃圾箱,或者直接忽略。出现这些问题,请修改发送的标题、内容、昵称等,重复的内容不要反复发送,或多更换收件箱和发件箱试试!!!

    3. 创建一封简单的电子邮件

    首先创建一个 Java 工程,把下载好的 javax.mail.jar 作为类库加入工程,这里不多说。

    邮件创建步骤:

    1. 创建一个邮件对象(MimeMessage);
    2. 设置发件人,收件人,可选增加多个收件人,抄送人,密送人;
    3. 设置邮件的主题(标题);
    4. 设置邮件的正文(内容);
    5. 设置显示的发送时间;
    6. 保存到本地。

    代码实现:

    package com.xiets.javamaildemo;
    
    import javax.mail.Session;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.util.Date;
    import java.util.Properties;
    
    /**
     * JavaMail 版本: 1.6.0
     * JDK 版本: JDK 1.7 以上(必须)
     */
    public class Main {
    
        public static void main(String[] args) throws Exception {
            // 1. 创建一封邮件
            Properties props = new Properties();
            // 用于连接邮件服务器的参数配置(发送邮件时才需要用到)
            Session session= Session.getInstance(props);        // 根据参数配置,创建会话对象(为了发送邮件准备的)
            MimeMessage message = new MimeMessage(session);     // 创建邮件对象
    
            /*
             * 也可以根据已有的eml邮件文件创建 MimeMessage 对象
             * MimeMessage message = new MimeMessage(session, new FileInputStream("MyEmail.eml"));
             */
    
            // 2. From: 发件人
            //    其中 InternetAddress 的三个参数分别为: 邮箱, 显示的昵称(只用于显示, 没有特别的要求), 昵称的字符集编码
            //    真正要发送时, 邮箱必须是真实有效的邮箱。
            message.setFrom(new InternetAddress("aa@send.com", "USER_AA", "UTF-8"));
    
            // 3. To: 收件人
            message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("cc@receive.com", "USER_CC", "UTF-8"));
            //    To: 增加收件人(可选)
            message.addRecipient(MimeMessage.RecipientType.TO, new InternetAddress("dd@receive.com", "USER_DD", "UTF-8"));
            //    Cc: 抄送(可选)
            message.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress("ee@receive.com", "USER_EE", "UTF-8"));
            //    Bcc: 密送(可选)
            message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress("ff@receive.com", "USER_FF", "UTF-8"));
    
            // 4. Subject: 邮件主题
            message.setSubject("TEST邮件主题", "UTF-8");
    
            // 5. Content: 邮件正文(可以使用html标签)
            message.setContent("TEST这是邮件正文。。。", "text/html;charset=UTF-8");
    
            // 6. 设置显示的发件时间
            message.setSentDate(new Date());
    
            // 7. 保存前面的设置
            message.saveChanges();
    
            // 8. 将该邮件保存到本地
            OutputStream out = new FileOutputStream("MyEmail.eml");
            message.writeTo(out);
            out.flush();
            out.close();
        }
    
    }
    

    保存的 MyEmail.eml 可以使用邮件客户端打开查看,实际上就是一堆符合SMTP协议格式的文本(内容使用base64进行了编码),也可用记事本打开,如下所示:

    my-email.png

    my-email-txt.png

    4. 发送电子邮件

    发送邮件首先需要有一个邮箱账号和密码,本文以网易163邮箱为例,邮箱账号必须要开启 SMTP 服务,在浏览器网页登录邮箱后一般在邮箱的“设置”选项中可以开启,并记下邮箱的 SMTP 服务器地址,如下所示(其他邮箱大同小异):

    smtp-163-setting.jpg

    代码实现:

    package com.xiets.javamaildemo;
    
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import java.util.Date;
    import java.util.Properties;
    
    /**
     * JavaMail 版本: 1.6.0
     * JDK 版本: JDK 1.7 以上(必须)
     */
    public class Main {
    
        // 发件人的 邮箱 和 密码(替换为自己的邮箱和密码)
        // PS: 某些邮箱服务器为了增加邮箱本身密码的安全性,给 SMTP 客户端设置了独立密码(有的邮箱称为“授权码”), 
        //     对于开启了独立密码的邮箱, 这里的邮箱密码必需使用这个独立密码(授权码)。
        public static String myEmailAccount = "xxxxxxxxx@163.com";
        public static String myEmailPassword = "xxxxxxxxx";
    
        // 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com
        // 网易163邮箱的 SMTP 服务器地址为: smtp.163.com
        public static String myEmailSMTPHost = "smtp.163.com";
    
        // 收件人邮箱(替换为自己知道的有效邮箱)
        public static String receiveMailAccount = "xxxxxxxxx@qq.com";
    
        public static void main(String[] args) throws Exception {
            // 1. 创建参数配置, 用于连接邮件服务器的参数配置
            Properties props = new Properties();                    // 参数配置
            props.setProperty("mail.transport.protocol", "smtp");   // 使用的协议(JavaMail规范要求)
            props.setProperty("mail.smtp.host", myEmailSMTPHost);   // 发件人的邮箱的 SMTP 服务器地址
            props.setProperty("mail.smtp.auth", "true");            // 需要请求认证
    
            // PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启),
            //     如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误,
            //     打开下面 /* ... */ 之间的注释代码, 开启 SSL 安全连接。
            /*
            // SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接,
            //                  需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助,
            //                  QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看)
            final String smtpPort = "465";
            props.setProperty("mail.smtp.port", smtpPort);
            props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.setProperty("mail.smtp.socketFactory.fallback", "false");
            props.setProperty("mail.smtp.socketFactory.port", smtpPort);
            */
    
            // 2. 根据配置创建会话对象, 用于和邮件服务器交互
            Session session = Session.getInstance(props);
            session.setDebug(true);                                 // 设置为debug模式, 可以查看详细的发送 log
    
            // 3. 创建一封邮件
            MimeMessage message = createMimeMessage(session, myEmailAccount, receiveMailAccount);
    
            // 4. 根据 Session 获取邮件传输对象
            Transport transport = session.getTransport();
    
            // 5. 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错
            // 
            //    PS_01: 成败的判断关键在此一句, 如果连接服务器失败, 都会在控制台输出相应失败原因的 log,
            //           仔细查看失败原因, 有些邮箱服务器会返回错误码或查看错误类型的链接, 根据给出的错误
            //           类型到对应邮件服务器的帮助网站上查看具体失败原因。
            //
            //    PS_02: 连接失败的原因通常为以下几点, 仔细检查代码:
            //           (1) 邮箱没有开启 SMTP 服务;
            //           (2) 邮箱密码错误, 例如某些邮箱开启了独立密码;
            //           (3) 邮箱服务器要求必须要使用 SSL 安全连接;
            //           (4) 请求过于频繁或其他原因, 被邮件服务器拒绝服务;
            //           (5) 如果以上几点都确定无误, 到邮件服务器网站查找帮助。
            //
            //    PS_03: 仔细看log, 认真看log, 看懂log, 错误原因都在log已说明。
            transport.connect(myEmailAccount, myEmailPassword);
    
            // 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
            transport.sendMessage(message, message.getAllRecipients());
    
            // 7. 关闭连接
            transport.close();
        }
    
        /**
         * 创建一封只包含文本的简单邮件
         *
         * @param session 和服务器交互的会话
         * @param sendMail 发件人邮箱
         * @param receiveMail 收件人邮箱
         * @return
         * @throws Exception
         */
        public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception {
            // 1. 创建一封邮件
            MimeMessage message = new MimeMessage(session);
    
            // 2. From: 发件人(昵称有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改昵称)
            message.setFrom(new InternetAddress(sendMail, "某宝网", "UTF-8"));
    
            // 3. To: 收件人(可以增加多个收件人、抄送、密送)
            message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "XX用户", "UTF-8"));
    
            // 4. Subject: 邮件主题(标题有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改标题)
            message.setSubject("打折钜惠", "UTF-8");
    
            // 5. Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改发送内容)
            message.setContent("XX用户你好, 今天全场5折, 快来抢购, 错过今天再等一年。。。", "text/html;charset=UTF-8");
    
            // 6. 设置发件时间
            message.setSentDate(new Date());
    
            // 7. 保存设置
            message.saveChanges();
    
            return message;
        }
    
    }
    

    发送后查看收件人的收件箱:

    sended-email.jpg


    包含文本、图片、附件 的复杂邮件的创建请看下一篇:基于 JavaMail 的 Java 邮件发送:复杂邮件发送


    展开全文
  • Android仿微信发送语音消息动态提示,支持上滑取消发送 来几张图说明一下,简单直接: 是不是看了图片就秒懂 了。 下面来分析代码实现,直接撸代码。 主页面 AudioSendActivity.java package ...

    Android仿微信发送语音消息动态提示,支持上滑取消发送

    先来几张图说明一下,简单直接:
    发送语音的动态提示1
    发送语音的动态提示2
    这里写图片描述


    是不是看了图片就秒懂 了。
    下面来分析代码实现,直接撸代码。
    主页面 AudioSendActivity.java

    package com.example.main;
    
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.graphics.Color;
    import android.graphics.drawable.AnimationDrawable;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Gravity;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnTouchListener;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    import com.example.test.R;
    
    public class AudioSendActivity extends Activity implements OnTouchListener{
        private AlertDialog mAudioDialog;
        private TextView mAudioNotify;
        private ImageView mVoiceState;
        private TextView mAudioSend;
        private boolean mCancelSend;
        private final String TAG = "AudioSendActivity";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_audiosend);
            mAudioSend = (TextView) findViewById(R.id.audio_send);
            mAudioSend.setOnTouchListener(this);
        }
    
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (v.getId() == R.id.audio_send) {
                float startY = 0;
                float endY = 0;
                boolean send = false;
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    startY = event.getY();
                    Log.d(TAG, "audioButtonDown() MotionEvent.ACTION_DOWN");
                    showAudioDialog();
                    break;
                case MotionEvent.ACTION_UP:
                    endY = event.getY();
                    hideAudioDialog();
                    send = true;
                    break;
                case MotionEvent.ACTION_MOVE:
                    float moveY = event.getY();
                    int instance = (int) Math.abs((moveY - startY));
                    Log.d(TAG, "--action move--instance:"+instance);
                    if (instance > 100) {
                        changeAudioDialogCancel(true);
                    } else {
                        changeAudioDialogCancel(false);
                    }
                    break;
                default:
                    break;
                }
    
                return true;
            }
            return false;
        }
    
    
        public void showAudioDialog() {
            if (mAudioDialog == null) {
                mAudioDialog = new AlertDialog.Builder(this).create();
                mAudioDialog.show();
                mAudioDialog.getWindow().setContentView(R.layout.audio_dialog);
                mAudioDialog.getWindow().setGravity(Gravity.CENTER);
                mAudioNotify = (TextView) mAudioDialog
                        .findViewById(R.id.audio_nofity);
                mVoiceState = (ImageView) mAudioDialog
                        .findViewById(R.id.voice_state);
    
            } else if (!mAudioDialog.isShowing()) {
                mAudioDialog.show();
            }
            mVoiceState.setImageResource(R.drawable.message_audio);
            AnimationDrawable drawable = (AnimationDrawable) mVoiceState
                    .getDrawable();
            drawable.start();
        }
    
        private void hideAudioDialog() {
            if (mAudioDialog != null && mAudioDialog.isShowing()) {
                mAudioDialog.dismiss();
            }
        }
    
    
        private void changeAudioDialogCancel(boolean cancel) {
            if (mCancelSend == cancel)
                return;
            if (mAudioDialog != null && mAudioDialog.isShowing()
                    && mAudioNotify != null) {
                if (cancel) {
                    mVoiceState.setImageResource(R.drawable.message_voice_quit);
                    mAudioNotify.setTextColor(Color.RED);
                    mAudioNotify.setText(R.string.fingers);
                } else {
                    mAudioNotify.setTextColor(Color.WHITE);
                    mAudioNotify.setText(R.string.fingers_slide_to);
                    mVoiceState.setImageResource(R.drawable.message_audio);
                    AnimationDrawable drawable = (AnimationDrawable) mVoiceState
                            .getDrawable();
                    drawable.start();
                }
            }
            mCancelSend = cancel;
        }
    }
    

    主页面布局activity_audiosend.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" 
        android:layout_gravity="center">
    
    
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/green"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="200px"
            android:padding="20px"
    
            android:id="@+id/audio_send"
            android:gravity="center"
            android:text="按住 发送"/>
    
    </RelativeLayout>
    

    Dialog对话框布局audio_dialog.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical" 
        android:layout_gravity="center_horizontal"
        android:background="@drawable/pop_bg">
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" 
            android:layout_gravity="center_horizontal">
    
            <ImageView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:id="@+id/voice_state"
                android:src="@drawable/message_audio"/>
    
        </LinearLayout>
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/fingers_slide_to"
            android:textColor="@color/white"
            android:id="@+id/audio_nofity"/>
    
    </LinearLayout>

    voiceState讲话动画message_audio.xml

    <?xml version="1.0" encoding="utf-8"?>
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
        android:oneshot="false" >
    
        <item
            android:drawable="@drawable/message_voice_1"
            android:duration="200"/>
        <item
            android:drawable="@drawable/message_voice_2"
            android:duration="200"/>
        <item
            android:drawable="@drawable/message_voice_3"
            android:duration="200"/>
        <item
            android:drawable="@drawable/message_voice_4"
            android:duration="200"/>
        <item
            android:drawable="@drawable/message_voice_5"
            android:duration="200"/>
        <item
            android:drawable="@drawable/message_voice_6"
            android:duration="200"/>
        <item
            android:drawable="@drawable/message_voice_7"
            android:duration="200"/>
    
    </animation-list>

    代码就这么多,是不是很简单啊,哈哈,喜欢请点个赞,谢谢!

    展开全文
  • 引起原因 1,跨域; 2,请求头非默认情况。 默认请求头如下 Accept Accept-Language Content-Language Last-Event-ID Content-Type:只限于三个值application/x-...通常情况下,会将content-Type:applicati...
  • 但是如果把发送消息的代码加到新增商品的方法里,因为最后一句是resalut ok(),所以会导致还未提交事务,就先发送了消息,此时发送的消息是空。导致报空指针错误。我把新增方法和发消息的代码装在一个新的方法里。但...
  • 主要内容:TCP发送缓存的管理,包括发送缓存的初始化、sock发送缓存的动态调整、sock发送缓存的申请和释放。 内核版本:3.15.2。 TCP对发送缓存的管理是在两个层面上进行的,一个...来看下单个socket的发送缓存管理。
  • STM32串口中断接收和中断发送

    万次阅读 多人点赞 2016-03-12 15:12:14
    STM32串口USART1中断接收和中断发送 贴出中断函数: void USART1_IRQHandler(void){  if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {  USART_ClearITPendingBit(USART1, USART_IT_RX
  • 可以看到要开启SMTP服务就得开通客户授权码。 三、点击开通客户授权码后出现如下界面,勾选”开启“选项。 四、如果你的163邮箱绑定了手机就会出现下图所示的窗口,要求你输入验证码。要是没有绑定就需要...
  • 四次挥手—服务器关闭,客户端不关闭,继续发送数据,会出现什么情况? 触发四次挥手机制: 服务器:发出FIN,客户端回复ACK,进入TIME_WAIT状态 客户端:没有close(),处于close_wait()状态, 接着向服务器...
  • java邮件发送和短信发送(一)

    千次阅读 2014-11-08 22:10:08
    最近刚完成一个任务-付款提醒邮件的发送,对于java邮件的发送有了更深刻的认识,的确java提供的邮件发送机制的确让邮件发送这个问题变得灵活而又简单。...按照按接口编程的习惯,当然要定义一个邮件发送的接口,再
  • 使用HttpClient发送InputStream对象及发送文件

    万次阅读 热门讨论 2017-05-26 00:17:03
    最近在做的东西中有这样一个需求要把一个文件上传到服务器A上,再由服务器A上传到服务器B上,而服务器...一个折中的办法是把文件临时存储在服务器A上,然后再从服务器A上读取文件发送到服务器B上,那么有没有办法直接
  • 说明一下粘包的概念: 发送时是两个单独的包、两次发送,但接收时两个包连在一起被一次接收到。在以前 WinCE 下 Socket 编程,确实也要处理粘包的问题,没想到在 Android 下也遇到了。首先想从发送端能否避免这样的...
  • 邮件发送程序(添加附件发送

    千次阅读 2018-09-08 17:18:50
    在这种模式下,用户通过浏览器访问Web应用中的内容,都会通过浏览器给服务器发送一个对资源的请求,服务器接到这个请求后,会把用户所请求的资源返回给浏览器。接下来的一点很少有人会思考到:其实文件上传与浏...
  • 今天抽空用jquery做了一下环信的...看下页面 Html 代码如下 <!DOCTYPE> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial...
  • 描述:我用IOCP做了个客户端,发送数据给服务端完全没问题,就是当服务端返回我发送的数据(服务端不做任何处理),我的客户端接收就出现了bug,经常就是接收到几十到几百个完整包(客户端拼包自己搞定了)就崩溃了...
  • OSQPostFront()函数和OSQPost()...值得注意的是,.OSQOut指针指向的是已经插入了消息指针的单元,所以再插入新的消息指针前,必须将.OSQOut指针在消息队列中前移一个单元。如果.OSQOut指针指向的当前单元是队列中的
  • 的存在,当低权限向高权限发送先消息的时候,高权限的进程获取不到消息;  先看下什么是UIPI:以下摘自百度百科:  UIPI指 User Interface Privilege Isolation(用户界面特权隔离),是Windows NT 6.0后(即...
  • 请问用c++的封包发送是怎么发送

    千次阅读 2013-10-09 01:06:41
    已经实现了拦截功能,即拦截到的数据包,勉强可以实现发送包功能, 但是不灵活,我实现的方法是模拟客户端来发送的,即是我勾到send函数时,先发送我的数据,然后再发送源数据包
  • Android发送邮件

    千次阅读 2015-08-31 23:01:54
    项目中有些关键日志需要从客户手中拿到,为了方便的收集日志...主要实现了发送邮件,抄送,发送附件功能看一下效果图:涉及到3个jar以及封装的接口JEmailHelper.javapackage jwzhangjie.com.javaemail; import andr
  • QT发送文件

    千次阅读 2012-11-05 14:17:12
     发送数据时我们要先发送文件的总大小,然后文件名长度,然后是文件名,这三部分我们合称为文件头结构,最后再发送文件数据。所以在发送函数里我们就要进行相应的处理,当然,在服务器的接收函数里我们也要进行相应...
  • android发送邮件

    千次阅读 2016-02-22 11:50:25
    一个项目的需求,之前一篇博客写过如何生成excel,生成后的excel要发送给用户(指定邮箱)。奇葩的后台说这个发送也不好实现,要客户端来做。也就只能做了(又是分分...没看过之前项目的可以看下:android生成excel。
  • socket 发送结构体数据

    万次阅读 多人点赞 2018-04-22 21:11:18
    Socket中的send函数可以发送字符串,但不能直接发送结构体,因此在发送把结构体转成字符串,然后用send发送,在接收端recv字符串,再转换成原先的结构体,这个就是解决问题的主要思路,实现中要注意的问题在下文...
  • flutter 发送验证码

    千次阅读 2019-06-24 02:55:00
    一个发送验证码的需求:包括限制文本框输入长度和只允许输入数字 按惯例 上图: class MyBody extends StatefulWidget { @override _MyBodyState createState() => _MyBodyState(); } class _...
  • 利用java实现发送邮件

    万次阅读 多人点赞 2017-11-14 15:01:31
    很显然这些应用不可能和我们自己平时发邮件一样,打开浏览器,登录邮箱,创建邮件再发送。本文将简单介绍如何通过 Java 代码来创建电子邮件,并连接邮件服务器发送邮件。电子邮件协议 电子邮件在网络中传输和网页...
  • 这个比较简单 :添加一个机器人:,获取webhook的url,用于发送信息。 开始开发:每个群每个机器人都是有唯一的access_token: $param['message']] = "产品已经审核通过了,请查看!"'; //发送信息 $param['...
  • 发送加密邮件

    千次阅读 2014-01-02 22:26:19
    如何发送加密邮件呢? 比如用户A 要向用户B 发送邮件,必须插上自己的key,key中存有B自己的私钥。如下图:
  • asp.net发送E-mail

    万次阅读 多人点赞 2013-08-04 21:39:44
    发送电子邮件也是项目开发当中经常用到的功能,这里我整理了一个发送电子邮件(带...上两个实体类,用于封装成Mail对象。 /// /// 发送邮件请求 /// public class MailRequest { #region PrivateFields ///
  • 2. 发点对点队列, 再发订阅队列 3. 批量发送 4. 在生产环境与测试环境的RabbitMQ都进行了测试   我们在测试的时候都没有出现丢失队列的情况.  1、在RabbitMQ配置文件中,开启确认机制,如下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,829
精华内容 17,131
关键字:

发送先