C++多线程socket 多线程通信,需要启多少个线程

17被浏览519分享邀请回答62 条评论分享收藏感谢收起&>&C++多线程网络编程Socket实例
C++多线程网络编程Socket实例
上传大小:47KB
C++多线程网络编程Socket实例,利用Socket编程是一类典型的网络通信程序,特别是在实时性要求比较高的项目中,Winsock编程方法是非常实用的。下面介绍在VC 6.0环境下开发Winsock程序的方法。
综合评分:3.9(70位用户评分)
所需积分/C币:
下载个数:415
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有15条
简单看一看,还是有帮助的
入门还是很不错的
代码比较简单,但是可以用
看了代码,不错,方便移植。
我只需要很简单的例子,这个看起来有点复杂,不太会用
代码比较乱 不好
非常不错,代码简单清晰,谢谢
入门的东东,不错学习了
还可以,入门的
不错可以一看
审核通过送C币
TCP-IP详解
创建者:tan3739
网络技术专辑
创建者:kingpeter2009
创建者:gaobaoqiang1983
上传者其他资源上传者专辑
文件系统管理
SVNbook 学习SVN的好资料
socket编程实例
网络技术热门标签
VIP会员动态
下载频道用户反馈专区
下载频道积分规则调整V1710.18
开通VIP,海量IT资源任性下载
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&VIP年卡&4000万程序员的必选
为了良好体验,不建议使用迅雷下载
C++多线程网络编程Socket实例
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
全站600个资源免积分下载
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
全站600个资源免积分下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
全站600个资源免积分下载
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
C++多线程网络编程Socket实例本帖子已过去太久远了,不再提供回复功能。多线程开发和Socket技术 - CSDN博客
多线程开发和Socket技术
一、进程和线程
进程:每个应用程序对应一个进程;
线程:一个进程至少包含一个线程,线程要和CPU进行交互。
多线程并发(可以理解为):&同一时间&执行多件事情,如程序一边执行,一边计数(计时);如人一边吃饭,一边看电视。
多线程并发的本质,其实并不是CPU&同时&执行多件事情,而是在不停的切换,执行一段时间事件A,切换,执行一段时间事件B;再切换,再执行一段时间事件A,如此往复,因为CPU处理速度非常快,电脑的使用者感觉不到,所以看起来就像是在同时执行多件事情。
线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。
多线程是指程序中包含多个程序执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务(代码),也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。
一个进程会创建一个默认线程,即主线程,也就是UI线程。&
多线程的优点
1.让计算机&同时&做多件事情,节约时间;
2.后台运行程序,提高程序的执行效率,也不会使主界面(UI线程)出现无响应的情况;
3.多线程可以让一个程序&同时&执行多件事情;
4.计算机CPU大部分时间处于空闲状态,避免浪费了CPU资源。
二、.Net中如何实现多线程
1.为线程执行一个方法(线程肯定要执行一段代码),这个方法中的代码就是该线程运行时要执行的代码(找一个人来做一件事)
产生一个线程的4个步骤:
1.编写该线程所要执行方法的代码
2.引用System.Threading命名空间
3.实例化Thread类,并传入一个指向线程所要运行方法的委托。(这时候线程已经产生,但还没有运行)
4.调用Thread实例的start()方法,标记该线程可以被CPU执行了,但具体执行时间由CPU决定。&
三、前台线程和后台线程
前台线程:只有所有的前台线程都关闭才能完成程序关闭的线程;
后台线程:只要所有的前台线程结束,后台线程自动结束。
将一个线程设置为后台线程的方法:
Thread.IsBackground =
线程可以执行
1.不带参数的委托(无传入参数)
ThreadStart();
2.传入带参数的委托
ParameterizedThreadStart(object);
传入参数类型为object,理论上可以传任意的集合、列表和数组等。
定义一个执行循环任务的方法:
void CountNum()
DateTime beginTime = DateTime.N
for (int i = <span style="color:#; i & <span style="color:#9999999; i&#43;&#43;)
//故意留空
TimeSpan ts = DateTime.Now.Subtract(beginTime);
MessageBox.Show(&循环执行完毕,用时:& &#43; ts.TotalMilliseconds);
//在多线程button的click事件中
Thread thread = new Thread(CountNum);
thread.IsBackground = true; //标记该线程为后台线程(前台线程结束后停止运行)
thread.Start();
四、套接字Socket
1.socket的英文原意是&孔&或&插座&。作为进程通信机制,取后一种意思。通常也成为&套接字&,用于描述IP地址和端口,是一种通信链的句柄。(其实就是2个程序通信用的)
2.socket非常类&#20284;于电话插座。以电话网为例,电话的通话双方都相当于相互通信的2个程序,电话号码就是IP地址。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的电话号码,相当于对方有一个固定的socket;然后双方拨号呼叫,相当于发出连接请求。加入对方在场并空闲,拿起电话听筒,双方就可以正式通话了,相当于连接成功。双方通话的过程中,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。通话结束后,一方挂断电话相当于关闭socket,撤销连接。
3.在Internet上有许多主机,运行多个服务软件,同时提供几种服务,每种服务都打开一个socket,并绑定到一个端口上,不同的端口对应不同的服务(应用程序)。
例如:http使用80端口,ftp使用21端口,smtp使用23端口。
4.socket传递数据主要有2中类型:
流式socket(STREAM)
是一种面向连接的socket,针对于面向连接的TCP服务应用,安全,但是效率低。
数据报式socket报文(DATAGRAM)
是一种无连接的socket,对应于无连接的UDP服务应用,不安全(丢失、顺序混乱,在接收端要分析重排及要求重发),但效率高。
5.Socket一般应用模式(服务端和客户端交互)
三次握手的过程。
6.socket的通讯过程
Socket操作相关类和方法
本文已收录于以下专栏:
相关文章推荐
这里线程模型是指winsock相关的线程模型设计。
  在本软件的设计的过程中有些问题是涉及到winsock的问题,为了能够很好的设计线程模型,必须理解清楚socket的内部工作机制。为此,首先...
在网上无意看到一个多线程的Socket服务器端例子,觉得非常不错。特别是其中的线程池的思想,简单而且高效。虽然JDK1.5开始已经自带了线程池包,但该代码不失为学习Socket和多线程的一个好的入门例...
本文地址:http://blog.csdn.net/kongxx/article/details/7259465
Java Socket实战之一 单线程通信
上一篇文章说到怎样写一个最简单的Jav...
线程是进程的一个执行单元,线程之间可以进行通讯,但是线程的执行是无序的。在java 的socket开发的时候,为什么要用线程开发,我的理解是是这样的。&#160;&#160;&#160; 在服务器端,用ServerSocket类的...
1、好久没写网络编程代码,今天有空,复习一下。下面
前言Hadoop是什么?
用百科上的话说:“Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和...
第一篇:勿忘初心,继续coding
第二篇:编程路上,送给处于迷茫中的你和自己
第三篇:编程路上,对于迷失者的一些小小建议
第四篇:如果不从事编程,我可以做什么?
在校期间踏入工作的不到五年时间里,曾...
程序人生 | 如果不从事编程,我可以做什么?作者:下一个丶奇迹
如果有一天不做编程了,我能做什么?或许,我会去开一家类似猫的天空之城一样的书店,天天在书香中度过,谈笑有鸿儒,往来无白丁,一定是很美...
第一种可以,因为Socket是双工的
多线程读写同一Socket的话基本上是会出问题的
想要不出问题的话,除非你的多个线程作用是一样的
在TCP/TP卷2...
他的最新文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 socket 多线程 的文章

 

随机推荐