资源简介
实验内容:基于服务器的客户端相互直接通信,具体要求包括:
1,Server支持多客户访问;
2,C与S之间使用TCP连接;
3,C与C之间直接通信(不是通过S传递)。
4,C与C之间直接通信既可以使用TCP,也可以使用UDP。
5,可以使用Socket,也可以使用TcpClient/UdpClient等;
6,实验示意图如下:
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace SyncChatServer//================================服务器
{
public partial class Form1 : Form
{
//保存用户列表
private List userList = new List();
//监听socket
private Socket myListener = new Socket(AddressFamily.InterNetworkSocketType.StreamProtocolType.Tcp);
private bool isNormalExit = false;
//端口号
private static int myprot = 8889;
//用户人数
private static int usercount = 0;
public Form1()
{
InitializeComponent();
button2.Enabled=false;
IPEndPoint ep;
//---------------------------------------主机IP和端口的绑定
/*string name = Dns.GetHostName();
IPHostEntry me = Dns.GetHostEntry(name);
foreach (IPAddress ips in me.AddressList)
{
try {
// ep = new IPEndPoint(ips myprot);
ep = new IPEndPoint(ipsmyprot);
myListener.Bind(ep);
label6.Text = ips.ToString(); //显示主机IP
richTextBox1.AppendText(“主机IP:“+ips.ToString() + “\n“);
break;
}
catch {
//若获取的IP是vs6的话
}
}*/
IPAddress ip = IPAddress.Parse(“127.0.0.1“);
try
{
myListener.Bind(new IPEndPoint(ip myprot));
richTextBox1.AppendText(“主机IP:“ + ip.ToString() + “\n“);
}
catch {
richTextBox1.AppendText(“绑定失败“);
}
//===================================================
}
//-------------------------------------------向窗口输出信息
private delegate void buttu_richBoxDelegate(string message);
private void buttu_richBox(string message)
{
richTextBox1.AppendText(message+“\n“);
}
//=======================================================
//-------------------------------------------------------监听按键
private void button1_Click(object sender EventArgs e)
{
isNormalExit = false;
buttu_richBoxDelegate d=buttu_richBox;
try
{
myListener.Listen(10);
richTextBox1.Invoke(d“成功监听.“);
}catch{
richTextBox1.Invoke(d“监听失败。“);
}
Thread mhThread=new Thread(ListenClientConnect);
mhThread.IsBackground=true;
mhThread.Start();
button1.Enabled=false;
butt
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1509 2014-03-19 09:57 C-C通信实验\CSapplication.sln
..A..H. 49664 2014-03-18 00:41 C-C通信实验\CSapplication.suo
..A..H. 62464 2014-04-11 23:10 C-C通信实验\CSapplication.v11.suo
..A..H. 68608 2014-04-11 08:12 C-C通信实验\CSapplication.v12.suo
文件 187 2014-03-17 20:54 C-C通信实验\SyncChatServer\App.config
文件 18944 2014-04-11 12:58 C-C通信实验\SyncChatServer\bin\Debug\SyncChatServer.exe
文件 187 2014-03-17 20:54 C-C通信实验\SyncChatServer\bin\Debug\SyncChatServer.exe.config
文件 48640 2014-04-11 12:58 C-C通信实验\SyncChatServer\bin\Debug\SyncChatServer.pdb
文件 22984 2014-04-11 22:53 C-C通信实验\SyncChatServer\bin\Debug\SyncChatServer.vshost.exe
文件 187 2014-03-17 20:54 C-C通信实验\SyncChatServer\bin\Debug\SyncChatServer.vshost.exe.config
文件 490 2010-03-17 22:39 C-C通信实验\SyncChatServer\bin\Debug\SyncChatServer.vshost.exe.manifest
文件 14142 2014-04-11 12:58 C-C通信实验\SyncChatServer\Form1.cs
文件 9551 2014-04-11 12:58 C-C通信实验\SyncChatServer\Form1.Designer.cs
文件 5817 2014-04-11 12:58 C-C通信实验\SyncChatServer\Form1.resx
文件 863 2014-04-11 09:17 C-C通信实验\SyncChatServer\obj\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6975 2014-04-11 13:04 C-C通信实验\SyncChatServer\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 2363 2014-04-11 22:53 C-C通信实验\SyncChatServer\obj\Debug\SocketServer.csproj.FileListAbsolute.txt
文件 975 2014-04-11 12:58 C-C通信实验\SyncChatServer\obj\Debug\SocketServer.csproj.GenerateResource.Cache
文件 2209 2014-04-11 09:22 C-C通信实验\SyncChatServer\obj\Debug\SocketServer.csprojResolveAssemblyReference.cache
文件 1194 2014-03-19 09:55 C-C通信实验\SyncChatServer\obj\Debug\SyncChatServer.csproj.FileListAbsolute.txt
文件 977 2014-03-18 22:28 C-C通信实验\SyncChatServer\obj\Debug\SyncChatServer.csproj.GenerateResource.Cache
文件 2211 2014-03-17 22:42 C-C通信实验\SyncChatServer\obj\Debug\SyncChatServer.csprojResolveAssemblyReference.cache
文件 18944 2014-04-11 12:58 C-C通信实验\SyncChatServer\obj\Debug\SyncChatServer.exe
文件 180 2014-04-11 12:58 C-C通信实验\SyncChatServer\obj\Debug\SyncChatServer.Form1.resources
文件 48640 2014-04-11 12:58 C-C通信实验\SyncChatServer\obj\Debug\SyncChatServer.pdb
文件 180 2014-03-17 22:42 C-C通信实验\SyncChatServer\obj\Debug\SyncChatServer.Properties.Resources.resources
文件 0 2014-03-17 20:54 C-C通信实验\SyncChatServer\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2014-03-17 20:54 C-C通信实验\SyncChatServer\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2014-03-17 20:54 C-C通信实验\SyncChatServer\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
文件 526 2014-03-17 20:54 C-C通信实验\SyncChatServer\Program.cs
............此处省略58个文件信息
- 上一篇:C# 学生选课系统~附上数据库
- 下一篇:WPF校园成绩管理(实现增删改查)
相关资源
- C# 调用win32 api函数-user32.dll详细说明
- C# 调用BarTender打印条码DEMO
- 大型比赛竞赛抽签系统 可打印 c# vs
- C#编写的Gerber查看器
- lua C# .Net4.0 vs2010 LuaInterface
- C#十六进制编辑器
- 明华URF-35H读卡器 C#读写源码 为大家
- C#文件流读取CSV文件
- c#读写PDF文件sql
- C# winform Socket大文件传输
- c#车牌识别系统附30张测试图片
- 《C#面向对象程序设计》源代码(CS)
- 金旭亮《C#面向对象程序设计》教案
- 试题库管理系统毕业论文(C#)源程序
- 学校网站原代码(C#.NET)
- C#-数据库操作技术-员工管理系统
- c#web开发入门经典
- C#与Matlab混合编程的几种方式
- c# 开发与 mysql数据库实现的增删改查
- C#异步操作 异步查询数据库 异步处理
- Basler相机通过IO触发源码
- [源代码] 《领域驱动设计 (C# 2008 实
- 松下PLC与C#通讯串口调试入门教程.z
- USB 继电器控制器 LCUS-1 保证能用 c#
- C# AES加密解密小工具
- C#圆形按钮,非常漂亮动态~~
- [精]C#仿QQ右下角弹出提示框()
- C#进程间通信-共享内存代码
- 有史以来最简单的三层(C#)
- vb调用c#编写的串口DLL文件(vb源码
评论
共有 条评论