• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
wenyue
博客园    首页    新随笔    联系   管理    订阅  订阅

socket

1什么是socket?
socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。

通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。

(其实就是两个程序通信用的。)是客户端与服务器通信的桥梁

2.两种类型
流式:安全 效率低 针对于面向连接的tcp服务应用
报文:不安全(丢失,顺序混乱,在接收端要分析重排及要求重发) 效率高 是一种无连接的Socket,对应于无连接的UDP服务应用


3.Socket的通讯过程
1.using System.net 网络节点(ip 和端口)using System.net.Socket
2.实例化 Socket sock=new Socket(……)使用IP4寻址协议,流式传输,Tcp协议)
3.IpAddress address=IpAddress.Parse(txtIp.Text)//创建ip对象
IPEndPoint endPint =new IpEndPoint(address,int.Parse(txtPort.Text));
//创建网络节点对象 ip和端口号
socket。Bind(endpoint);
//将监听套接字 绑定到对应的 ip和端口

socket.Listen(10);//设置监听队列的长度 最多中只能接受10个 连接请求

//socket.Accept();//负责监听 客户端 连接请求 但是 他会阻断当前线程
  //那就创建后台线程 方法内容 :调用socket.Accept();方法


Scoket.Receive(字节数组)Receive会阻断线程

*****4.运行原理:客户端与服务器
1.客户端发送请求(ip和端口号)
2.服务器监听客户端的连接请求
3.通过accept方法获取了负责与客户端通信的套接字
4.双方发送和监听

5.注意:要一直保持监听和receive的状态 accept和receive会阻断线程 需要用一个后台线程来处理
如果需要修改用其他线程来修改 控件的数据 可能还会涉及到一些跨线程的东东(Lock(this))
或者将窗体设置可以跨线程 TextBox.CheckForIllegalCrossThreadCalls = false;


2.Socket一般应用模式(服务器端和客户端)
客户端:2.(来找女朋友的男生)客户端套接字
服务器:1.(女生宿舍阿姨)负责监听 连接请求 的套接字
  1.1(一个负责接收客户端连接请求(但不负责与客户端通信)

 3.由(女生宿舍阿姨) 创建 负责和客户端通信的套接字 
  每成功接收到一个客户端的连接便在服务端产生一个对应的Socket
  3.1在接收到客户端连接时创建.
  3.2为每个连接成功的客户端请求在服务端都创建一个对应的Socket(负责和客户端通信).

posted @ 2011-09-03 01:29  wenyue  阅读(403)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3