-
lỗi khi lập trinh WINSOCK trên Delphi
Lỗi này là lỗi gì vậy mấy bác ??


em đang học sử dụng winsock trong Delphi (vẫn còn gà delphi lém, thấy cái này hay hay nên zô học thử), cái trong hình là ct tạo một sever đơn giản , gán 1 socket vào 1 cổng mà mình nhập vào khi ct chạy .Không bik sao mà dùng cổng nào nó cũng báo lỗi đó . Debug một hồi thì phát hiện lỗi xảy ra khi ct thực thi hàm BIND() .Mấy bác biết cái ct của em bị lỗi gì không ? Có cách nào khắc phục được không hay là phải viết lại ct :wacko:?:down:
Còn đây la toàn bộ code chương trình :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,winsock;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Button2: TButton;
ListBox1: TListBox;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
s:^string;
p:string;
sock,sock2:Tsocket;
inp1:Tsockaddr;
DATA:WSAData;
k,t:integer;
inp2[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]SOCKADDR;
ac[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Visible:=TRUE;
Listbox1.Visible:=TRUE;
k:=WSAStartup(makeword(2,2),unit1.DATA);
if(k <> 0) then Form1.Label1.Caption:='error in starting Winsock';
sock:=socket(AF_INET,SOCK_STREAM,0);
sock2:=socket(AF_INET,SOCK_STREAM,0);
if(k <> 0) then Form1.Label1.Caption:='error in creating socket';
inp1.sin_family:=AF_INET;
val(edit1.Text,k,t);
inp1.sin_port:=htons(k);
inp1.sin_addr.S_addr:=htonl(INADDR_ANY);
s^:='your sever has started , waiting for a connection from client';
Listbox1.AddItem(s^,Listbox1);
k:=bind(sock,inp1,sizeof(inp1));
if(k <> 0) then Form1.Label1.Caption:='error in set port for socket';
new(s);
k:=listen(sock,5);
if(k <> 0) then Begin
s^:='a client is connecting';
Listbox1.AddItem(s^,Listbox1);
End;
sock2:=accept(sock,inp2,ac);
s^:='infomation of client:';
Listbox1.AddItem(s^,Listbox1);
s^:=inp2.sin_addr.S_un_b.s_b1;
Listbox1.AddItem(s^,Listbox1);
s^:=inp2.sin_addr.S_un_b.s_b2;
Listbox1.AddItem(s^,Listbox1);
s^:=inp2.sin_addr.S_un_b.s_b3;
Listbox1.AddItem(s^,Listbox1);
s^:=inp2.sin_addr.S_un_b.s_b4;
Listbox1.AddItem(s^,Listbox1);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
k:=shutdown(sock,1);
if(k <> 0) then Form1.Label1.Caption:='error in shutdown 1';
t:=shutdown(sock2,1);
if(t <> 0) then Form1.Label1.Caption:='error in shutdown 2';
k:=closesocket(sock);
if(t <> 0) then Form1.Label1.Caption:='error in close 1';
t:=closesocket(sock2);
if(t <> 0) then Form1.Label1.Caption:='error in close 2';
end;
end.
Quyền viết bài
- Bạn Không thể gửi Chủ đề mới
- Bạn Không thể Gửi trả lời
- Bạn Không thể Gửi file đính kèm
- Bạn Không thể Sửa bài viết của mình
-
Nội quy - Quy định
Bạn đang tìm kiếm giải pháp vận chuyển và nâng hạ hàng hoá máy móc nặng cho dự án hay công việc của mình tại khu vực Mỹ Phước - Bình Dương? Chúng tôi tự hào giới thiệu dịch vụ cho thuê xe cẩu tại Mỹ...
Dịch vụ cho thuê xe cẩu tại Mỹ Phước từ 3 tấn 120 tấn