-
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:
- Cách lấy thông tin từ 1 dòng trong Gridview hiển thị lên CrystalReport trong C#
- giao tiếp qua mạng trong lập trình C#
- làm sao load hình từ csdl lên listview
- Tính năng cho phép người dùng tự định nghĩa report trong visual ?
- Không thể đọc DateTime từ trong File, làm sao để đọc được?
- AppDomain và ứng dụng trong thực tế ??
- Sự kiện tự cập nhật thông tin giữa các Form
- Thắc mắc về trình bày trong Crystal report
- Làm sao để khi hover chuột thì giá trị được thay đổi theo thứ tự
- Xóa nhiều dòng 1 lúc trong gridview C#?
-
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 Long An đã trở thành một trong những lựa chọn phổ biến cho nhu cầu vận chuyển và lưu trữ hàng hóa trong nhiều ngành công nghiệp. Với đặc tính nhẹ nhàng, chắc chắn và dễ vận chuyển, các...
Thanh lý pallet nhựa Long An giá rẻ