-
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ịch sử thay đổi cơ sở dữ liệu SQL
- Cách đọc mã của một đoạn ký tự string?
- Lấy ngày đầu năm của năm hiện tại trong sql
- Ý tưởng thực hiện bài toán tô màu đồ thị bằng winform
- Tạo môi trường 3D đơn giản và điều khiển góc nhìn (camera) trong C#
- Lỗi không tìm thấy Table[0] trong DataSet
- convert type từ ArrayList thành mảng DataRow[] như thế nào ?
- bindding đối tượng với 1 control như thế nào ?
- Thắc mắc về code làm full screen cho form ?
- Sử dụng Multithread , ứng dụng bị treo . Cần giúp đỡ .
-
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
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...