Scoket编程
来源:互联网 发布:淘宝手办散货 编辑:程序博客网 时间:2024/06/05 18:04
服务端代码:
class Program
{
static void Main(string[] args)
{
const int BufferSize = 8192;//缓存大小8192字节,可以存4096个汉字
Console.WriteLine("Sever is running");
IPAddress ip = IPAddress.Parse("127.0.0.1");//获取ip址
TcpListener listener = new TcpListener(ip,8500);
listener.Start();//开始监听
Console.WriteLine("Start Listening");
//do
//{
//获取一个连接,中断方法
TcpClient remoteClient = listener.AcceptTcpClient();
//打印连接的客户端信息
Console.WriteLine("Client Connected!{0}<--{1}",remoteClient.Client.LocalEndPoint,remoteClient.Client.RemoteEndPoint);
//获取流,并写入buffer中
NetworkStream streamToClient = remoteClient.GetStream();
byte[] buffer = new byte[BufferSize];
int bytesRead = streamToClient.Read(buffer,0,BufferSize);//一直等待客户端传信息
Console.WriteLine("Reading data,{0} bytes..",bytesRead);
//获得请求的字符串
string msg = Encoding.Unicode.GetString(buffer,0,bytesRead);
Console.WriteLine("Received:{0}", msg);
//转换成大写并发送
msg = msg.ToUpper();
buffer = Encoding.Unicode.GetBytes(msg);
lock (streamToClient)
{
streamToClient.Write(buffer,0,buffer.Length);
}
Console.WriteLine("Send:{0}",msg);
//} while (true);
Console.WriteLine("\n\n输入\"Q\"键退出。");
ConsoleKey key;
do
{
key = Console.ReadKey(true).Key;
} while (key != ConsoleKey.Q);
}
}
客户端代码:
class Program
{
static void Main(string[] args)
{
const int BufferSize = 8192;
Console.WriteLine("Client Running...");
TcpClient client;
for (int i = 0; i < 5; i++)
{
try
{
client = new TcpClient();
client.Connect("localhost", 8500);//与服务器连接
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return;
}
//打印连接到的服务器信息
Console.WriteLine("Serevr Connect! {0}--->{1}", client.Client.LocalEndPoint, client.Client.RemoteEndPoint);
NetworkStream streamToServer = client.GetStream();
ConsoleKey key;
Console.WriteLine("Menu:S-Send,X-Exit");
do
{
key = Console.ReadKey(true).Key;
if (key==ConsoleKey.S)
{
//获取输入的信息字符串
Console.WriteLine("输入信息");
string msg = Console.ReadLine();
//发送信息
byte[] buffer = Encoding.Unicode.GetBytes(msg);
streamToServer.Write(buffer,0,buffer.Length);
Console.WriteLine("Sent:{0}",msg);
int bytesRead;
buffer = new byte[BufferSize];
lock (streamToServer)
{
bytesRead = streamToServer.Read(buffer,0,BufferSize);
}
msg = Encoding.Unicode.GetString(buffer,0,bytesRead);
Console.WriteLine("Received:{0}",msg);
}
} while (key !=ConsoleKey.X);
}
// 按Q退出
Console.WriteLine("\n\n输入\"Q\"键退出");
ConsoleKey keys;
do
{
keys = Console.ReadKey(true).Key;
} while (keys != ConsoleKey.Q);
}
}
- scoket编程
- Scoket 编程
- Scoket编程
- Scoket编程
- java scoket 编程实例
- Linux ScoKet编程
- C++ Scoket编程
- C++ Scoket编程
- VC++ Scoket编程小结
- 网络编程scoket
- 【Scoket编程】篇二
- Scoket网络编程客户端
- Scoket编程--UDP
- Scoket编程--TCP
- ios网络编程之Scoket
- .Net的Scoket网络编程
- ios网络编程之Scoket
- Scoket
- kotlin学习笔记
- POJ2763-Housewife Wind
- django 与 百度 ueditor 富文本编辑器集成之一:图片上传,文件上传
- 图论-强连通分量 poj-2186
- 第3周实践项目4 -顺序表的应用 删除顺序表中元素为x的值
- Scoket编程
- 重磅!首部电子合同调研报告即将出版,高峰研讨报名进入倒计时
- 反编译Asp.Net项目实践(得到开发源码)
- Idea设置
- 十六,与java交互
- <Notepad++>多列编辑模式
- 嵌入式大牛开发经验心得
- leetcode 665. Non-decreasing Array
- 【PAT】【Advanced Level】1124. Raffle for Weibo Followers (20)