-
07-06-2011, 06:31 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi, nhận dữ liệu giữa 2 máy tính mạng Lan => chạy ở cùng 1 máy thì được, mang sang 2 máy khác nhau thì không chạy
Mình có tham khảo cái quyền sách trong topic này:
Lập trình mạng với C#
Mình có làm 1 cái ví dụ trong đó. Khi chạy cả 2 file cùng lúc ở máy của mình thì nó hoạt động tốt.
Còn mang sang 2 máy khác nhau. (Nhưng cùng dùng chung mạng quán nét)
Thì không thấy nó chạy j cả. Mà cũng không thấy báo lỗi. Chỉ thấy win báo gửi lỗi cho họ:
Cả 2 máy mình đều dùng winXP, cài đủ .NET....
Code của 2 file Sever và Client:
Server:
Mã:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets; namespace Code_Server{ class Program { static void Main(string[] args) { IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2008); Socket server = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp); server.Bind(iep); server.Listen(10); Console.WriteLine("Cho ket noi tu Client"); Socket client = server.Accept(); Console.WriteLine("Chap nhan ket noi tu:{0}", client.RemoteEndPoint.ToString()); string s = "Chao ban den noi sever"; //chuyen chuoi s thanh dang byte byte[] data = new byte[1024]; data = Encoding.ASCII.GetBytes(s); //Gui nhan du lieu theo phuong thuc da thiet ke client.Send(data, data.Length, SocketFlags.None); while (true) { data = new byte[1024]; int recv = client.Receive(data); if (recv == 0) break; //chuyen mang byte Data thanh chuoi va in ra man hinh s = Encoding.ASCII.GetString(data, 0, recv); //Console.WriteLine("Client gui len:{0}", recv); Console.WriteLine("Client:{0}", s); //Neu nhan duoc chuoi Quit thi thoat if (s.ToUpper().Equals("QUIT")) break; //Gui tra lai cho client chuoi s //s = s.ToUpper(); s = Console.ReadLine(); data = new byte[1024]; data = Encoding.ASCII.GetBytes(s); client.Send(data, data.Length, SocketFlags.None); } client.Shutdown(SocketShutdown.Both); client.Close(); server.Close(); } }}
Mã:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets; namespace Code_Client{ class Program { static void Main(string[] args) { IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2008); Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); client.Connect(iep); byte[] data = new byte[1024]; int recv = client.Receive(data); string s = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine("Server gui:{0}",s); string input; while (true) { input = Console.ReadLine(); //chuyen input thanh mang byte gui len sever data = new byte[1024]; data = Encoding.ASCII.GetBytes(input); client.Send(data, data.Length, SocketFlags.None); if (input.ToUpper().Equals("QUIT")) break; data = new byte[1024]; recv = client.Receive(data); s = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine("Sever gui:{0}", s); } client.Disconnect(true); client.Close(); } }}
Mục đích của 2 code là chạy trên 2 máy tính trong mạng Lan mà nếu thế này thì ...[IMG]images/smilies/17.gif[/IMG]
Gửi bởi tauit_dnmd
Nghe bạn nói mình cũng chưa hiểu ra vấn đề [IMG]images/smilies/17.gif[/IMG][IMG]images/smilies/17.gif[/IMG][IMG]images/smilies/17.gif[/IMG]
Mong bạn cho cách giải quyết [IMG]images/smilies/smile.png[/IMG]View more random threads:
- Lỗi crystal report không load được dữ liệu từ csdl attack khắc phục như thế nào?
- Bắt đầu chạy 1 hàm thì xuất hiện ra một form sau khi chạy xong thì biến mất form đi
- Help mình tạo slide ảnh từ database
- Cách đóng gói chương trình kèm theo Database sql 2005
- Cách sử dụng phần mềm đóng gói chuyên nghiệp setup factory
- Cần giúp về bài tập Quản Lý Công Việc
- Show tất cả button của NavigationPane trong xử lý Dotnetbar?
- Tạo ruler trong Wordpad với lập trình C#???
- phân biệt quyền user và login trong sql server
- Hàm lượng giá trong trò chơi cờ caro
-
07-06-2011, 06:37 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi vuthanhtrung90
-
08-06-2011, 09:11 AM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
127.0.0.1 là thay cho cái localhost khi chạy trên 2 máy thì bạn phải thay địa chỉ gửi request của client .Cách lấy thì bạn trên đã nói rồi đấy, mở cmd rồi gõ ipconfig/all.
-
08-06-2011, 09:16 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi haovq00417
Trong sách nó cho ví dụ thế nên mình cũng mới biết đến thế thôi!
Để mình xem thêm đã!
Cám ơn các bạn: @haovq00417, @OWickedFox, @r3z0lee, @tauit_dnmd đã cho gợi ý.
Mình đã sửa lại được rùi!
Thay IPAddress bằng địa chỉ của máy dùng làm server!
[Cái tội không đọc lý thuyết [IMG]images/smilies/17.gif[/IMG][IMG]images/smilies/17.gif[/IMG][IMG]images/smilies/17.gif[/IMG]]
-
08-06-2011, 07:07 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
bạn xem Ip của server cũng là IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2008);
client cũng là : IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2008);
chạy trên 2 máy khác nhau thì bạn phải đổi lại ip chứ!
-
08-06-2011, 07:26 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi r3z0lee
Up cái![IMG]images/smilies/tongue.png[/IMG]
Nội quy diễn đàn là sau 72h mới được up [IMG]images/smilies/biggrin.png[/IMG] (bây giờ mới được 12h, nhưng đã bị qua trang 2 rùi)
Em biết em sai nhưng .... [IMG]images/smilies/clap_grin.gif[/IMG][IMG]images/smilies/clap_grin.gif[/IMG]
-
08-06-2011, 07:38 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi vuthanhtrung90
- Bạn tìm hiểu 127.0.0.1 là địa chỉ gì?Địa chỉ IP của máy là gì?Cách xem địa chỉ IP của máy?lệnh ipconfig trong DOS
-
09-06-2011, 05:58 PM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
bạn xem cái ví dụ này là biết ah`, khi kết nối thì client sẽ nhập ip máy chủ.
-
09-06-2011, 06:02 PM #9Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
bạn xem thêm ví dụ này là biết ah`, khi kết nối thì client sẽ nhập ip máy chủ
-
09-06-2011, 06:36 PM #10Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi vuthanhtrung90
Pallet nhựa Lâm Đồng giải pháp hoàn hảo cho nhà kho Pallet nhựa Lâm Đồng là một giải pháp đa năng và hiệu quả trong việc vận chuyển và lưu trữ hàng hóa. Trong đó, pallet nhựa Lâm Đồng không chỉ đáp...
Pallet nhựa Lâm Đồng giải pháp...