.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 ...
随机推荐
- UIScrollView的封装
UIScrollView的封装 效果 特点 1.用法简单,尺寸大小,随意设置位置 2.可以有多个数据源的数据,可以定制不通的界面(如同上图,一个有文字,一个没有文字) 3.能够实现点击事件 用法 1. ...
- 简单的学习心得:网易云课堂Android开发第五章SharedPreferences与文件管理
一.SharedPreferences (1)SharedPreferences能够用来保存一些属于基本数据类型的数据. (2)保存数据,删除数据都是由SharedPreferences的内部接口Ed ...
- Atitit.css 规范 bem 项目中 CSS 的组织和管理
Atitit.css 规范 bem 项目中 CSS 的组织和管理 1. 什么是BEM?1 1.1. 块(Block)2 1.2. 元素(Element)2 1.3. BEM树(和DOM树类似).3 ...
- [Erlang 0119] Erlang OTP 源码阅读指引
上周Erlang讨论群里面提到lists的++实现,争论大多基于猜测,其实打开代码看一下就都明了.贴出代码截图后有同学问这代码是哪里找的? "代码去哪里找?",关于Erla ...
- [AlwaysOn Availability Groups]使用Powershell监控AlwayOn健康
使用Powershell监控AlwayOn健康 1.基本命令概述 AlwayOn Dashboard是很有用的查看整体AG健康状况的工具.但是这个工具不是用于7*24监控的.如果应用程序夜间发送严重的 ...
- postgres创建表的过程以及部分源码分析
背景:修改pg内核,在创建表时,表名不能和当前的用户名同名. 首先我们知道DefineRelation此函数是最终创建表结构的函数,最主要的参数是CreateStmt这个结构,该结构如下 typede ...
- php使用microtime(true)查看代码执行时间
microtime() 函数返回当前 Unix 时间戳和微秒数. 如果带个 true 参数, 返回的将是一个浮点类型 round() 取出小数点后 3 位 $t1 = microtime(true); ...
- 路由集合中已存在名为“ XXXX” 的路由
一般是认为路由的名字Key重复了,改下就行,但是还有种情况,你发现不是的,你把Key名称改了就好,不改就有问题.为什么?那就是有可能在bin目录下其它的DLL中有重复的Key了,这个时候,就要看看该改 ...
- ajax 同步和异步
ajax请求中同步是要等待请求结果返回后才能继续执行,而异步请求则不需要等待返回结果,可以直接进行后面语句.
- java中的匿名内部类总结
原文地址: http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html 匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内 ...