将局域网中的机器添加到一个工作组中

转自 http://www.luyouqiwang.com/index.php?mod=group_thread&code=view&id=607

怎么才能把两台电脑连接到一起相互查看使用两台电脑的东西呢?

 

一:

将两台电脑和一个路由器物理的连接起来

(两台电脑都是WIN XP系统)

两台电脑的局域网:

在两台电脑上分别做如下操作:

1.双击打开网上邻居

2.在左侧网络任务中选择设置家庭或小型办公网.

3.下一步

4.下一步

5.下一步设置计算机名(两台计算机不能同名如:jsj1和jsj2)

6.下一步设置工作组为"WORKGROUP"(两台电脑必须在同一个工作组)

7.下一步启用文件打印共享

8.下一步选择最后一项"完成该向导..."

9.下一步

10.完成

11.分别在两台电脑上打开网上邻居

12.在左侧网络任务中选择"查看工作组计算机"

13.若都可以看到自己(jsj1)的计算机和对方计算机(jsj2)则OVER!

两台电脑共享连接Internet:

1.查看路由器说明书找到路由器网关(例如:一般网关为http://192.168.0.1)

2.打开IE 浏览器(在桌面上你上网时打开网页的蓝色e图标的东西,应该知道吧!~)

3.在地址栏输入网关(如:http://192.168.0.1)

4.进入路由器设置页面,然后登陆(密码一般为:admin)

5.点击设置向导

6.下一步

7.选择:连接到Internet……选项

8.下一步

9.输入上网卡卡号和密码,输入DNS(电信用户DNS可以到当地电信网站查询;如:湖北电信用户的DNS为:202.103.0.117或202.103.24.68)

10.保存设置

11.重起路由器

12.检查是否能上网

一般地,现在的路由器品种繁多,可能设置步骤和我所说的有点不同,但所有路由器的设置方法是大同小异的!~具体情况具体对待,关键是要懂得路由上网的原理及思想!~

参考资料:复制的,不好意思

两种方式

1、购买一个交换机,即插即用。

2、购买一张网卡,其中一台电脑双网卡做代理服务器共享上网。

买一个集线器,把外面进来的线插上,再把你家两台电脑的网线插上就可。

二:

最简单的方法是这样::两台机器都插在路由器上,把两个机器的工作组设为一样的,重启。再把要转文件的机器,把文件在的盘共享,在那个机器上就可以全部调用了,想怎么搞就怎么搞,,共享设置为右键点击该盘=共享=选择共享此文件夹=确定 OK。

三:

在2台电脑上面都点点网上邻居→设置家庭或小型办公网络下一步 下一步 选

此计算机通过居民的网观或网络上的其他计算机连接到internet

不停的下一步就行了

重启后设置文件夹共享

在另一台机子的网上邻居上找到就行了

四:

把可以随便改的那个台电脑网络设置的跟那台不可以改的加到一个网络里,再设网络共享,权限为完全,可以更改查看内容。

在不能改动的机器 开始 运行里 输上//xxx.xxx.xxx.xxx就可以了

不能改的机器为A能改的为B

在A机器上查看ip:双击 本地连接 在 支持 里有ip地址跟子网掩码两个,记录下来。假设ip为192.168.0.10 子网掩码为255.255.255.0

到B机器上设IP地址为192.168.0.11子网掩码为255.255.255.0.

也就是说ip加一个数,子网掩码不变。

把B机器的防火墙关掉。在网络上共享这个文件夹,允许网络用户更改这个文件夹。

在A机器 开始 运行 对话框中 输入//192.168.0.11就可以查看复制文件了

 

 

怎么才能把两台电脑连接到一起相互查看使用两台电脑的东西呢?

 

一:

将两台电脑和一个路由器物理的连接起来

(两台电脑都是WIN XP系统)

两台电脑的局域网:

在两台电脑上分别做如下操作:

1.双击打开网上邻居

2.在左侧网络任务中选择设置家庭或小型办公网.

3.下一步

4.下一步

5.下一步设置计算机名(两台计算机不能同名如:jsj1和jsj2)

6.下一步设置工作组为"WORKGROUP"(两台电脑必须在同一个工作组)

7.下一步启用文件打印共享

8.下一步选择最后一项"完成该向导..."

9.下一步

10.完成

11.分别在两台电脑上打开网上邻居

12.在左侧网络任务中选择"查看工作组计算机"

13.若都可以看到自己(jsj1)的计算机和对方计算机(jsj2)则OVER!

两台电脑共享连接Internet:

1.查看路由器说明书找到路由器网关(例如:一般网关为http://192.168.0.1)

2.打开IE 浏览器(在桌面上你上网时打开网页的蓝色e图标的东西,应该知道吧!~)

3.在地址栏输入网关(如:http://192.168.0.1)

4.进入路由器设置页面,然后登陆(密码一般为:admin)

5.点击设置向导

6.下一步

7.选择:连接到Internet……选项

8.下一步

9.输入上网卡卡号和密码,输入DNS(电信用户DNS可以到当地电信网站查询;如:湖北电信用户的DNS为:202.103.0.117或202.103.24.68)

10.保存设置

11.重起路由器

12.检查是否能上网

一般地,现在的路由器品种繁多,可能设置步骤和我所说的有点不同,但所有路由器的设置方法是大同小异的!~具体情况具体对待,关键是要懂得路由上网的原理及思想!~

参考资料:复制的,不好意思

两种方式

1、购买一个交换机,即插即用。

2、购买一张网卡,其中一台电脑双网卡做代理服务器共享上网。

买一个集线器,把外面进来的线插上,再把你家两台电脑的网线插上就可。

二:

最简单的方法是这样::两台机器都插在路由器上,把两个机器的工作组设为一样的,重启。再把要转文件的机器,把文件在的盘共享,在那个机器上就可以全部调用了,想怎么搞就怎么搞,,共享设置为右键点击该盘=共享=选择共享此文件夹=确定 OK。

三:

在2台电脑上面都点点网上邻居→设置家庭或小型办公网络下一步 下一步 选

此计算机通过居民的网观或网络上的其他计算机连接到internet

不停的下一步就行了

重启后设置文件夹共享

在另一台机子的网上邻居上找到就行了

四:

把可以随便改的那个台电脑网络设置的跟那台不可以改的加到一个网络里,再设网络共享,权限为完全,可以更改查看内容。

在不能改动的机器 开始 运行里 输上//xxx.xxx.xxx.xxx就可以了

不能改的机器为A能改的为B

在A机器上查看ip:双击 本地连接 在 支持 里有ip地址跟子网掩码两个,记录下来。假设ip为192.168.0.10 子网掩码为255.255.255.0

到B机器上设IP地址为192.168.0.11子网掩码为255.255.255.0.

也就是说ip加一个数,子网掩码不变。

把B机器的防火墙关掉。在网络上共享这个文件夹,允许网络用户更改这个文件夹。

在A机器 开始 运行 对话框中 输入//192.168.0.11就可以查看复制文件了

 

 

将另外一台机器加入到一个工作组中:

右击我的电脑,点属性,在计算机名选项卡中点"更改",在"隶属于"框中选择"工作组",输入工作组名称的名称,点确定,等一会儿,Windows 会提示你"欢迎加入 xxx 工作组"和重新启动计算机。 

<think>好的,用户想在C#控制台应用中实现局域网功能,包括创建房间、搜索房间和加入房间。首先,我得理解这些功能的具体需求。创建房间应该是指启动一个服务器,等待其他客户端连接。搜索房间可能涉及客户端扫描局域网内的服务器,然后加入就是连接到选中的服务器。 接下来,考虑使用哪种协议。TCP和UDP都是可行的,但用途不同。TCP适合可靠的连接,比如房间创建后的通信;而UDP适合广播搜索,因为速度快,即使丢包也没关系。所以可能要用UDP广播来搜索房间,TCP用于实际的连接。 然后是结构设计。可能需要两个项目,一个作为服务器(创建房间),另一个作为客户端(搜索和加入)。不过用户希望在一个文件中实现,所以得在同一个程序里处理服务器和客户端的逻辑。可能需要多线程,服务器在后台运行,同时客户端功能可以执行。 具体步骤的话,创建房间需要启动TCP监听,绑定到本机IP和端口,并开始接受客户端连接。同时,服务器可能需要定期通过UDP广播自己的存在,让客户端能发现。搜索房间则需要客户端发送UDP广播,然后监听服务器的响应,收集可用的房间信息。加入房间就是客户端连接到选中的服务器IP和端口。 代码结构方面,可能需要用TcpListener和UdpClient类。服务器部分用TcpListener处理连接,客户端用TcpClient连接。Udp部分用于广播和发现。要注意端口的选择,比如用同一个端口进行UDP通信,或者分开端口。 还需要处理多线程,因为服务器需要持续监听连接,而客户端需要同时执行搜索或加入操作。主线程可能需要处理用户输入,比如选择创建还是搜索房间。线程间通信可能需要共享数据结构,比如房间列表。 另外,网络地址的处理很重要。获取本机IP地址可能需要遍历所有网络接口,选择正确的IPv4地址。广播地址通常是子网的广播地址,比如192.168.1.255这样的形式。或者直接发送到255.255.255.255,但可能受网络配置限制。 错误处理也不能忽视,比如端口被占用,或者连接超时等情况。需要适当的异常处理和用户提示。 测试时,可能需要在同一局域网下的多台机器上运行,或者用多个实例在同一台机器测试,但要注意端口冲突的问题。可能需要让用户输入不同的端口号来避免。 最后,界面部分虽然是控制台,但也要有交互菜单,比如提示用户选择创建房间还是搜索,然后显示搜索到的房间列表,让用户选择加入哪一个。 总结下来,步骤大致是:设计协议(TCP和UDP结合)、实现服务器和客户端的逻辑、处理多线程和网络通信、错误处理、用户交互界面。接下来需要把这些思路转化成具体的代码结构,确保各部分协同工作。</think>在C#控制台应用中实现局域网房间功能,可以通过以下步骤使用TCP/UDP协议实现基础功能: ```csharp using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; class Program { // 房间信息存储结构 class RoomInfo { public string Name; public IPEndPoint EndPoint; } static bool isRunning = true; static TcpListener server; static Thread serverThread; static Thread discoveryThread; static void Main() { Console.WriteLine("1. 创建房间\n2. 搜索房间"); var choice = Console.ReadLine(); switch (choice) { case "1": StartServer(); break; case "2": SearchRooms(); break; } } // 创建房间(服务端) static void StartServer() { try { server = new TcpListener(IPAddress.Any, 12345); server.Start(); Console.WriteLine("房间已创建,等待连接..."); // 启动UDP广播线程 discoveryThread = new Thread(BroadcastPresence); discoveryThread.Start(); // 接受客户端连接 while (isRunning) { var client = server.AcceptTcpClient(); Console.WriteLine($"{client.Client.RemoteEndPoint} 已加入"); } } catch (Exception ex) { Console.WriteLine($"服务器错误: {ex.Message}"); } } // UDP广播存在 static void BroadcastPresence() { using (var udp = new UdpClient()) { udp.EnableBroadcast = true; var broadcastIp = new IPEndPoint(IPAddress.Broadcast, 54321); var message = Encoding.ASCII.GetBytes("ROOM_ANNOUNCEMENT"); while (isRunning) { udp.Send(message, message.Length, broadcastIp); Thread.Sleep(2000); } } } // 搜索房间(客户端) static void SearchRooms() { var rooms = new List<RoomInfo>(); // 启动UDP监听线程 var listenerThread = new Thread(() => { using (var udp = new UdpClient(54321)) { udp.EnableBroadcast = true; while (isRunning) { var remoteEP = new IPEndPoint(IPAddress.Any, 0); var data = udp.Receive(ref remoteEP); var message = Encoding.ASCII.GetString(data); if (message == "ROOM_ANNOUNCEMENT") { var newRoom = new RoomInfo { Name = $"房间 {rooms.Count + 1}", EndPoint = new IPEndPoint(remoteEP.Address, 12345) }; if (!rooms.Any(r => r.EndPoint.Equals(newRoom.EndPoint))) { rooms.Add(newRoom); Console.WriteLine($"发现新房间: {newRoom.Name} ({remoteEP.Address})"); } } } } }); listenerThread.Start(); // 显示房间列表 Thread.Sleep(3000); if (rooms.Count == 0) { Console.WriteLine("未找到可用房间"); return; } Console.WriteLine("输入要加入的房间编号:"); for (int i = 0; i < rooms.Count; i++) { Console.WriteLine($"{i+1}. {rooms[i].Name}"); } if (int.TryParse(Console.ReadLine(), out int choice) && choice <= rooms.Count) { JoinRoom(rooms[choice-1].EndPoint); } } // 加入房间 static void JoinRoom(IPEndPoint endPoint) { try { var client = new TcpClient(); client.Connect(endPoint); Console.WriteLine("成功加入房间!"); // 这里可以添加后续通信逻辑 } catch (Exception ex) { Console.WriteLine($"连接失败: {ex.Message}"); } } } ``` 实现原理说明: 1. 网络协议组合: - 使用TCP(端口12345)进行可靠的主连接 - 使用UDP(端口54321)进行广播发现 - 广播间隔2秒发送一次房间存在通知 2. 关键功能实现: - 房间创建: - 启动TCP监听 - 开启UDP广播线程 - 显示连接状态 - 房间搜索: - 监听UDP广播 - 维护房间列表 - 提供交互式选择 - 房间加入: - 建立TCP连接 - 处理连接结果 3. 扩展建议: ```csharp // 可扩展方向: // 1. 添加房间密码验证 // 2. 实现房间人数限制 // 3. 增加心跳检测机制 // 4. 添加自定义房间名称 // 5. 实现房间列表刷新功能 ``` 注意事项: 1. 防火墙需要开放12345和54321端口 2. 确保测试设备在同一局域网 3. 可能需要管理员权限运行 4. 广播地址可能受路由器设置限制 这个实现展示了局域网房间系统的基础框架,开发者可以根据具体需求在此基础进行功能扩展和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值