C#中的socket编程方法
服务器:
第一步,准备socket套接字:Socket sockfd = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
第二步,准备Ip地址与端口号(为绑定做准备):IPAddress Ip = new IPAddress(new Byte[]{192.168.1.7});
:EndPoint point = new IPEndPoint(Ip,7788);
第三步,绑定Ip地址与端口号:sockfd.Bind(point);
第四步,监听客户端是否连接:sockfd.Listrn(1024);// 最大的连接数
第五步,记录及相应客户端的连接请求:Socket client_sockfd = sockfd.Accept();
第六步,向客户端发送数据:client_sockfd.Send(data);//data可能要做一些转换
第七步,接收数据:sockfd.Recv();
客户端与之相似,只需要做微小的改动即可。
客户端不需要绑定,只需要与服务器进行连接:sockfd.Connect(point); //sockfd是客户端的套接字
下面是一个没有用到线程的小示例:
Server
static void Main(string[] args)
{
Socket sockfd = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,ProtocolType.Tcp);
// 准备IP
// IPAdderss Ip = new IPAdderss(new byte[]{192,168,1,7});
IPAddress Ip = IPAddress.Parse("192.168.1.7");
// 准备端口号
EndPoint point = new IPEndPoint(Ip,5678);
//绑定
sockfd.Bind(point);
//监听客户端的最大连接数
sockfd.Listen(1024);
//响应客户端的连接请求和记录客户端的Ip地址和端口号
Socket Client_sockfd = sockfd.Accept();
string message = "hello socket!";
//Byte[] data = new byte[1024];
// 向客户端发送数据
Byte[] data = Encoding.UTF8.GetBytes(message);
Client_sockfd.Send(data);
// 接收客户端发送的数据
Byte[] data2 = new byte[1024];
int lenth = Client_sockfd.Receive(data2);
string buf = Encoding.UTF8.GetString(data2, 0, lenth);
Console.WriteLine(buf);
Console.ReadKey();
}
}
Client
static void Main(string[] args)
{
Socket sockfd = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress Ip = IPAddress.Parse("192.168.1.7");
EndPoint point = new IPEndPoint(Ip, 5678);
sockfd.Connect(point);
// 接收服务器发来的消息
Byte[] data = new byte[1024];
int lenth = sockfd.Receive(data);
string message = Encoding.UTF8.GetString(data,0,lenth);
Console.WriteLine(message);
Console.WriteLine("请输入要发送的数据:");
string buf = Console.ReadLine();
Byte[] sdata = Encoding.UTF8.GetBytes(buf);
sockfd.Send(sdata);
Console.ReadKey();
}
}
C#中的socket编程方法的更多相关文章
- QT中的SOCKET编程(QT-2.3.2)
转自:http://mylovejsj.blog.163.com/blog/static/38673975200892010842865/ QT中的SOCKET编程 2008-10-07 23:13 ...
- 读懂Java中的Socket编程
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
- 读懂Java中的Socket编程(转)
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
- java中的socket编程
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
- QT中的SOCKET编程
转自:http://mylovejsj.blog.163.com/blog/static/38673975200892010842865/ QT中的SOCKET编程 2008-10-07 23:13 ...
- Go中的Socket编程
在很多底层网络应用开发者的眼里一切编程都是Socket,话虽然有点夸张,但却也几乎如此了,现在的网络编程几乎都是用Socket来编程.你想过这些情景么?我们每天打开浏览器浏览网页时,浏览器进程怎么和W ...
- 深入理解javascript中实现面向对象编程方法
介绍Javascript中面向对象编程思想之前,需要对以下几个概念有了解: 1. 浅拷贝和深拷贝:程序在运行过程中使用的变量有在栈上的变量和在堆上的变量,在对象或者变量的赋值操作过程中,大多数情况先是 ...
- python进阶---Python中的socket编程
初识socket编程 一.前言 socket基于C\S架构(客户端\服务端)的编程模型,在Python中是以socket模块存在的. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是 ...
- socket编程方法,概念
"蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也.蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也." ------------------------------------- ...
随机推荐
- nopCommerce的源代码结构和架构
下载地址 nopcommerce的源代码很容易拿到,它是开源的,所以你可以直接到网上下载.下载地址:http://www.nopcommerce.com/downloads.aspx 因为nop是国外 ...
- 创建线程(Background Thread)的N种方式
第一.Thread类 Thread类是实例化线程的主要方法:一个Thread实例管理一个线程,即执行序列.通过简单实例化一个对象,就可以创建一个线程,然后通过Thread对象提供的方法对线程进行管理. ...
- Events
Events The idea behind Events is the ability to send data, as parameters, to interested Listeners an ...
- Input
Input Basic Input Old Input Files Please note that both Input and Request do NOT sanitize your data, ...
- 快递查询API接口对接方法
各类接口 快递查询API有即时查询和订阅查询两种,即时是请求即返回数据,订阅则是订阅快递单号到接口,有物流轨迹更新则全量返回数据.目前常用的有快递鸟.快递100.快递网等. 快递鸟即时API可以查询3 ...
- php笔记03:布尔类型,字符串,浮点数
1.布尔类型 下面情况都是看出false: 布尔类型FALSE自身 整型值为0 浮点型值为0.0 空字符串,以及字符串"0" 不包含任何元素的数组 不包含任何成员变量的对象(仅PH ...
- 写实例学习html5 WebSocket
WebSocket简介 WebSocket是html5的重要特性.它是HTML5一种新的协议,实现了浏览器与服务器全双工通信(full-duplex).使服务器可以主动传送数据给客户端,对构建实时w ...
- centos_Error: Protected multilib versions_解决方法
在yum命令后面加入忽略参数:--setopt=protected_multilib=false you can also use --setopt=protected_multilib=false ...
- 也谈一下Activiti工作流节点的自由跳转
最近在搞openwebflow的工作流节点自由跳转功能,在网上看了一些资料,感觉不是很好,总结原因如下: 直接手动调用SqlSession的操作,感觉会漏掉一些重要的初始化操作(如:启动新节点之后加载 ...
- ASP.NET MVC 5入门小结
1.前言 本人在读研究僧一只,老师那里使用的是ASP.NET的Web Forms技术,真的要感慨一句:尼玛太老旧了!之前耳闻Python的高效开发,曾经学过一点Python的Django ...