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编程方法,概念
"蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也.蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也." ------------------------------------- ...
随机推荐
- CSS_样式sample
<!DOCTYPE HTML> <html> <head> <title>div浮动</title> <style type=&quo ...
- 【面试题】如何让C语言自动发现泄漏的内存
1. 题目 改造malloc和free函数,使C语言能自动发现泄漏的内存,在程序退出时打印中遗漏的内存地址和大小. 2. 思路 用一个链表来记录已经分配的内存地址.在malloc时,把分配的内存地址和 ...
- hibernate3整合spring2时hibernate即用注解又用配置文件情况时spring配置文件的配置写法
hibernate只用注解时,spring的配置文件的配置如下 <bean id="dataSource" class="org.apache.commons.db ...
- Kali安全测试相关书籍
Kali安全测试相关书籍http://www.automationqa.com/forum.php?mod=viewthread&tid=4052&fromuid=2
- OQL对象查询语言
在用mat工具分析内存使用情况查询OutOfMemory原因时,OQL会有很大帮助,所以先在这里总结一下. 基本语法: select <javascript expression to sele ...
- PeopleReady--办公学习类App产品
PeopleReady是能使人(公司或组织里的员工)快速Ready(经验+知识)的学习系统.对员工的好处是:- 可以迅速Ready,尽快符合岗位要求,尽快有Performance,尽快对公司有价值,从 ...
- JavaScript类型检测, typeof操作符与constructor属性的异同
*#type.js function Person(name, age) { this.name = name; this.age = age; } var d = {an: 'object'}; v ...
- 20160507-hibernate入门
关联映射 多对一(Employee - Department) 一对多(Department-Employee) 一对一(Person - IDCard) 多对多(teacher - student) ...
- phpize php扩展模块安装
安装(fastcgi模式)的时候,常常有这样一句命令:/usr/local/webserver/php/bin/phpize一.phpize是干嘛的?phpize是什么东西呢?php官方的说明:htt ...
- 用PHP操作http中Etag、lastModified和Expires标签
http://blog.hehehehehe.cn/a/10994.htm 客户端通过浏览器发出第一次请求某一个URL时,根据 HTTP 协议的规定,浏览器会向服务器传送报头(Http Request ...