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编程方法,概念
"蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也.蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也." ------------------------------------- ...
随机推荐
- Debug Certificate expired on 11-5-8 上午 6:26
好久没用电脑上的eclipse,今天新建了个安卓项目,发现报下面的错误: 后来得知: 是Debug证书过期所致. android应用必须经过签名证书进行数字签名后,才能安装,在开发调试阶段,默认情 ...
- Languages
Languages A language class exists inside the system/Core folder, this class have 2 methods: load - L ...
- A.prototype.b=22和A.b=22的区别
// A.prototype.b=22和A.b=22有什么区别 <script> function A(){ this.b=11; }A.b=22;//A.prototype.b=2 ...
- nativescript环境搭建
参考官网 http://docs.nativescript.org/setup/ns-cli-setup/ns-setup-win.html
- 为 ASP.NET Web API 创建帮助页
http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/creating-api-help-pages 以前实例 ...
- 까페24 호스팅 php 에러메세지 출력
[문제점] 최근 까페24호스팅에서 php작업시화면에 에러메세지가 나오지 않아 디버깅시에 매우 곤란함 [해결책] .htaccess 내용에 아래추가.=================== ...
- Apache优化:修改最大并发连接数
http://www.365mini.com/page/apache-concurrency-configuration.htm Apache是一个跨平台的web服务器,由于其简单高效.稳定安全的特性 ...
- 爬虫遇到取到网页为reload的问题
有的网站防采集,会在页面加上this.window.location.reload(),这时候你就会得到如下代码: <html> <head> <meta ...
- JAVA操作LDAP总结
一.LDAP概念 LDAP的全称为Lightweight Directory Access Protocol(轻量级目录访问协议), 基于X.500标准, 支持 TCP/IP. LDAP目录为数据库, ...
- table表格中加入<a>标签,使内容上下居中的方法。
主要思路:定义好表格单元格的width和height,再加入<a>后,设置<a>的width=100%,height=100%填充整个单元格.那么此时设置上下左右居中样式就只需 ...