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编程方法,概念
"蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也.蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也." ------------------------------------- ...
随机推荐
- 最新 Sublime Text 3 Package Control 安装方法
相信看到这个帖子的童鞋,一般至少对 Sublime Text 有所了解了,废话不多讲,个人在 ST2 还没用好的时候, Sublime Text 3 又横空出世了,不过现在 ST3 还是 beta 版 ...
- 分享原创可复用且非侵入性代码生成工具(for .net)
入行IT十年了,这是本人第一次网上’献丑‘.迫于工作压力,花了大半年时间写了这个生成器以辅助开发.如有价值请多多给予建议,谢谢 好了,废话少说,开动! QA. 1.为什么要用代码生成器? 当然是为了快 ...
- 简单改写SQL达到优化目的
select * from (select t.row_id, t.supplier_name, t.tel, address, t.contact, t.contact_post, t.contac ...
- c/c++指针基础使用
#include <iostream> #include <string> using namespace std; int main() { "; "; ...
- (转)FastDFS_v5.05安装配置
http://my.oschina.net/shking/blog/165326 http://blog.csdn.net/yecong111/article/details/42646523 htt ...
- Discuz论坛架构改造
这个论坛一直通过NFS服务共享文件给三台web服务器做负载均衡. 在实际环境中WEB Server总是出现CPU负载突然升高.文件交互的网络流量异常.甚至WEB Server夯死,NFS不能卸载,只能 ...
- [转]Install App to SD
本文转自:http://www.douban.com/group/topic/29597344/ If you want to move more apps to the SD card, you'l ...
- Log4net - 规则简介(续)
之前对于配置并没有结束, 中间插了一个demo进去, 能够更直观的看到日志是怎么使用的. 这一篇, 我加了一些自己的东西进去, 可以更直观的来理解这些配置内容. 这里就继续介绍配置文件中的内容. 1. ...
- 浅谈用java解析xml文档(一)
关于xml本身的语法及使用的环境不多说了,网上有很多规则, 然对xml文档进行解析,一般分为四种解析方式,基于java官方文档的Dom 和Sax解析,还有就是基于 第三方jar包的 Jdom 和 Do ...
- 通过Workbook类 生成Excel导出数据
需求: 实现错误信息生成Excel保存到本地让用户查看. 刚开始使用了微软自带的Microsoft.Office.Interop.Excel类库. Microsoft.Office.Interop.E ...