.net Socket 通信简单实例(初级入门)
c/s控制台应用程序,Server、Client分别在两个项目中
服务端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net; namespace SocketServer
{
class Program
{
static void Main(string[] args)
{
try
{
int port = ;
string host = "127.0.0.1";
IPAddress ipa = IPAddress.Parse(host);//将IP字符串转换为IP地址的实例
IPEndPoint ipe = new IPEndPoint(ipa, port);//将网络端点表示为ip地址和端口号
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个socket类
s.Bind(ipe);//绑定端口号
s.Listen();//开始监听
Console.WriteLine("wait for connect");
Socket tmp = s.Accept();//为新连接创建新的socket
Console.WriteLine("get a connect");
string recvStr = "";
byte[] recvBytes = new byte[];
int bytes;
bytes = tmp.Receive(recvBytes, recvBytes.Length, );//从客户端接收信息
recvStr += Encoding.ASCII.GetString(recvBytes, , bytes);
Console.WriteLine("get message:{0}", recvStr);//把从客户端传来的信息显示出来
string sendStr = "Yeah! Client send message sucessful";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
tmp.Send(bs, bs.Length, );//返回客户端成功信息
tmp.Close();
s.Close(); }
catch (ArgumentNullException ex)
{
Console.WriteLine(ex); }
catch (SocketException ex)
{ Console.WriteLine(ex); } Console.WriteLine("press enter to exit");
Console.ReadLine();
}
}
}
客户端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets; namespace SocketClient
{
class Program
{
static void Main(string[] args)
{
try
{
int port = ;
string host = "127.0.0.1";
IPAddress ipa = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ipa, port);//把ip和端口转化为ipendpoint实例
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个socket
Console.WriteLine("connecting.....");
s.Connect(ipe);//连接到服务器
string sendStr = "Hello! Socket Test";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
Console.WriteLine("SendMessage");
s.Send(bs, bs.Length, );//发送测试信息
string recvStr = "";
byte[] recvBytes = new byte[];
int bytes;
bytes = s.Receive(recvBytes, recvBytes.Length, );//从服务器端接收返回信息
recvStr += Encoding.ASCII.GetString(recvBytes, , bytes);
Console.WriteLine("ClientGetMessage:{0}", recvStr);//显示服务器返回信息
s.Close();
}
catch (ArgumentNullException ex)
{ Console.WriteLine(ex); }
catch (SocketException ex)
{ Console.WriteLine(ex); }
Console.WriteLine("press enter to exit");
Console.ReadLine();
} }
}
效果图 :


注意事项:先运行server,在运行client.(怎么发布大家都知道的)
源码:http://download.csdn.net/detail/long_3160221/6929581
.net技术交流群:70895254
.net Socket 通信简单实例(初级入门)的更多相关文章
- Java的Socket通信简单实例
服务端 package testlxd; import java.io.BufferedReader; import java.io.IOException; import java.io.Input ...
- Socket通信简单实例(WCF调用Socket)
服务端: 控制台程序监听 /// <summary> /// Server /// </summary> class Program { static Socket serve ...
- socket通信简单介绍
“一切皆Socket!” 话虽些许夸张,可是事实也是,如今的网络编程差点儿都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间怎样通信,如我们每天打开浏 ...
- Socket无连接简单实例
使用无连接的套接字,我们能够在自我包含的数据包里发送消息,采用独立的读函数读取消息,读取的消息是使用独立的发送函数发送的.但是UDP数据包不能保证可靠传输,存在许多的因素,比如网络繁忙等等,都有可能阻 ...
- Socket通信 简单实现私聊、群聊(dos命令下)
很久以前的一个Demo,这里服务器只做转发功能,根据ID地址和端口号来标识身份,群聊和私聊只是简单实现, 服务器代码如下: import java.util.*; import java.io.*; ...
- Linux环境下用C语言实现socket 通信---简单代码
Socket编程实例: 服务器端:一直监听本机的8000号端口,如果收到连接请求,将接收请求并接收客户端发来的消息,并向客户端返回消息. 客户端:client.c /* File Name: clie ...
- 简单的Socket通信(简单的在线聊天)---winform
注:本博客适合刚开始学习winform程序的初学者,大牛请绕道(跪求大牛指导文中不足) .....10w字废话自动省略,直接开始正题. 首先从最基本的建立winform开始(本项目用的Vs2017) ...
- Socket通信编程实例(SIB和SS'SOB)
客户端: package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.Input ...
- Linux下简单的socket通信实例
Linux下简单的socket通信实例 If you spend too much time thinking about a thing, you’ll never get it done. —Br ...
随机推荐
- Android调用webservice的例子
1.需要一个ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar的架包. 2.需要知道webservice的命名空间 // WSDL文档中的命 ...
- TabLayout+ViewPager+Fragment制作页卡
本人很懒,直接上代码了. 布局文件: <?xml version="1.0" encoding="utf-8"?><android.suppo ...
- 酷欧天气(CoolWeather)应用源码
<ignore_js_op> 181420yank2y45klayhaan.jpg (35 KB, 下载次数: 0) 下载附件 保存到相册 2016-3-29 15:09 上传 酷欧 ...
- java代码走查审查规范
分类 重要性 检查项 备注 命名 重要 命名规则是否与所采用的规范保持一致? 成员变量,方法参数等需要使用首字母小写,其余单词首字母大写的命名方式,禁止使用下划线(_)数字等方式命名不 ...
- 在本机搭建SVN服务器
目的:在没有正式的SVN服务器的情况下,完成代码的本地备份. 参考:http://blog.csdn.net/ladofwind/article/details/2100200 以下是具体内容: 如何 ...
- GDB调试命令小结
1.启动调试 前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息.gdb program //最常用的用gdb启动程序,开始调试的方 ...
- 转载: 黄聪:C#中 Excel列字母与数字的转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 在虚拟机中安装CentOS
1.准备工具 我当时下载的是VMware9.0.2,之后升级即可. 2.安装VMware9.0.2,按照步骤安装即可,安装成功并运行 选择创建新的虚拟机,出现下图,选择"自定义"后 ...
- 基于TCP的网络编程
HTTP协议,FTP协议等很多广泛应用的协议均基于TCP协议.TCP编程主要为C/S模式,客户端和服务器之间的程序设计存在较大差异. TCP编程框图 服务器调用socket().bind().list ...
- nth-of-type在选择class的时候需要注意的一个小问题
查了下w3和MDN的手册,没发现有这个说明,写篇随笔记下. 1..class:nth-of-type(n)在选择class的时候,如果在class前面插入x个同类型标签,n需要加上x <!DOC ...