PDA

View Full Version : lập trình Socket trong đa luồng



thephong32
02-03-2005, 21:22
Ai giúp mình với. Mình đang lập trình đa luồng, chay một User interface thread, trong luồng nay mình khai báo
CSocket m_Socket
m_Socket.Create();
khi biên dịch thì không bị lỗi nhưng khi chạy nó mới báo lỗi.
Mình có down load một chương trình demo cua Microsoft, cơ bản giống nhau,nhưng nó thêm hai biến toàn cục CEvent m_event va long CountThread.
Nhân tiện mình hỏi luôn cách khai báo biến Global trong VC++, minh khai báo nó ko nhận.

coldsteel
02-03-2005, 23:01
Trước khi tạo socket bạn đã có dòng code này chưa: AfxSocketInit(NULL); ?

thephong32
03-03-2005, 09:54
Minh lam nhu ban noi ma van loi,ko chay duoc. Co mot dieu hoi la , neu nhu minh sua cai project cua Microsoft, chi giu lai cai Dialog khoi dong cua no,con tat ca cac giao dien, class Thread va Socket deu viet lai, noi chung la viet lai het,thi van chay binh thuong. Co dieu gi ben trong cai dialog ban dau cua no nhi?

coldsteel
03-03-2005, 17:02
Bạn bị lỗi Abort, Ignore à?

Bạn up code lên đi. Có code dễ xem hơn. Nhiều khi lỗi không nằm ở phần socket.

thephong32
03-03-2005, 18:46
Chao Coldsteel
Day la ham bam nut Login,no goi luong CCLientThread
void LoginDlg::OnBUTTONLogin()
{
CClientThread* pThread = (CClientThread*)AfxBeginThread(RUNTIME_CLASS(CClie ntThread), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
...
pThread->ResumeThread();
};
Sau day la doan code trong Thread,CSocket m_Socket la bien cuc bo cua Thread.Lenh m_Socket.Create() gay loi,neu xoa di thi binh thuong.
BOOL CClientThread::InitInstance()
{
m_socket.Create();//day la lenh gay loi,xoa bo se ko bi loi


// Try to connect to the peer
if (m_socket.Connect("loopback",1) == 0)
{
if (GetLastError() != WSAEWOULDBLOCK)
{
//error in the connection process, terminate myself
::PostQuitMessage(0);
}
}
return TRUE;
}
Dieu ki la neu minh su sung cai Project ve Socket threadcua Microsoft roi viet lai cac class hoan toan moi,ko su dung mot ham cu nao thi chuong trinh ko bi loi,nhung tao mot project moi va chay doan code tren thi bi loi, ke ca voi worker thread cung vay.No bi loi debug,send error

thephong32
03-03-2005, 20:06
Neu Coldsteel muon doc code thi cho minh email minh se gui toan bo code,vc ma no dau co the copy het len day duoc .

coldsteel
04-03-2005, 22:48
m_socket.Connect("loopback",1)

Bạn thử thay string "loopback" bằng "127.0.0.1" xem? Tham số thứ nhất của hàm connect là địa chỉ server mà.

InstCode
05-03-2005, 09:40
127.0.0.1 == loopback == localhost

LACA
11-03-2005, 17:29
Ba.n co' the^? goi code (ca 2) cho mi`nh duoc khong?
binhminhtn@yahoo.com

hpt2008
13-09-2008, 20:56
anh chi nao cho em chuong trinh lap trinh da luong bang visual C++ voi.
nho noi tac dung cua no voi. thankkkkkkks!!!!!!!!!!!

Đức Tâm
14-09-2008, 10:54
Những cái này mình chưa biết. Đúng là hay đấy chứ, huynh nào biết thì giải quyét gấp nha, cho các anh em trên diễn đàn học hỏi. Thank!!!!!!!!!!!1
--------------------------------
Mua và bán máy tính cũ
Chất lượng tuyệt vời. Giá cả phải chăng?
2.300.000 đ một bộ.
Phone : (058)230332- Tâm-ĐH Nha Trang