黑马程序员---多线程和socket的编程

.............................Windows Phone 7手机开发   .Net培训.................................

 

 

1、  主要介绍单线程和多线程的

2、  多线程的重入

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Threading;//注意引用命名空间

 

namespace 多线程

{

    public partial class Form1 :Form

    {

        public Form1()

        {

           //TextBox.CheckForIllegalCrossThreadCalls = false;//对于textbox允许跨线程访问,一般是直接CheckForIllegalCrossThreadCalls=false;

            CheckForIllegalCrossThreadCalls = false;        

   InitializeComponent();

        }

 

        private void btnSingleThread_Click(object sender, EventArgs e)//单线程的编写

        {

            countTime();

          

        }

        void countTime()

        {

            #region

            double i;

            DateTime beginTime = DateTime.Now;

            for (i = 0; i < 999999999; i++)

            {

 

            }

          

            TimeSpan ts = DateTime.Now.Subtract(beginTime);

            MessageBox.Show("循环完毕。。。"+ts.Milliseconds);

            #endregion

        }

 

        private void MulThread_Click(object sender, EventArgs e)//多线程的编写

        {

            Thread thread = new Thread(countTime);//事件委托代码

            thread.IsBackground = true;//后台进程

            thread.Start();//开始启用线程

        }

        void txtChange()

        {

            for (int i = 0; i < 200000; i++)

            {

              

                txtShow.Text = i.ToString();

                Console.WriteLine(Thread.CurrentThread.Name +"i=" + i);

               

            }

        }

        private void btnOverRider_Click(object sender, EventArgs e)//多线程重写

        {

          

            Thread thread1 = new Thread(txtChange);

            thread1.Name = "t1";

            thread1.IsBackground = true;

            thread1.Start();

            Thread thread2 = new Thread(txtChange);

            thread2.Name = "t2";

            thread2.IsBackground = true;

            thread2.Start();

 

        }

 

    

    }

}

1.Socket 作为进程通信机制,通常称作套接字,用于描述IP地址和端口,是一个通信连的句柄。(其实2.是两个程序通信用的通道)相当于电话机

3在internet上有很多这样的主机,这些主机一般运行多个服务软件,同时提供几种服务。每个服务都打4开一个socket并绑定到一个端口上不同的端口对应于不同的应用程序

5.Socket有两种类型:

流式socket(stream)

是一种面向连接的socket,针对于面向连接的tcp服务应用,安全但是效率低;

数据报式socket(datagram)

是一种无连接的socket,对应于无连接的UDP服务应用不安全(易丢失,顺序混乱,在接收端要分析重排及要求重发)但是效率高

Socktet一般应用模式(服务器端和客户端)

一个负责接收客户端连接请求(但是不负责和客服端通信)

每成功接收到一个客户端的链接便在服务端产生一个对应的socket(负责和客服端通信)

在接收到客户端连接时创建

为每个连接成功的客户端创建一个对应socket

客户端得socket

必须指定要连接的服务端地址和端口

通过创建一个socket对象来初始化一个到服务器端得TCP连接 

  Socket的通信过程

服务器端

申请一个socket

绑定到一个iP地址和一个端口上

开启侦听,等待接受连接

客户端

申请一个socket

连接服务器(指明ip地址和端口号)

服务器端接收到连接请求后,产生一个新的socket(端口大于1024)与客服端建立连接并进行通信,原侦听socket继续侦听

Socketconnection.remoteEndPoint .tostring()是保存当前的链接客户端得IP和端口

 

 

.............................Windows Phone 7手机开发   .Net培训.................................

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值