Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
socket처음입니다.도와주세요
클라이언트는 제컴에서 만들고 서버는 리눅스로 하는데,
속켓으로 data를 보내려고 하는데 clientSocket컴퍼넌트만 사용하면 되나요?
그리고 address에 와 host의 차이점에 대해서 말씀좀 해주세요.
그리고 host에다 제가 알기론 서버 ip주소를 넣어야 되는걸로 알고 있는데
맞는건지도 알고 싶네요.
부탁합니다.
4
COMMENTS
이경문
•
2001.12.14 01:47
소켓관련 컴포넌트나 라이브러리는 많이 있는데, 처음 사용하신다면 ClientSocket을 쓰시는 게 무방합니다.
그리고 Host는 말 그대로 HostName을 적는 거구요, Address는 IP Address(dotted 4 format)을 적는 겁니다.
HostName을 명시하였다면 내부적으로 Address로 변환해 줍니다(gethostbyname이라는 winsocket API를 호출하여서 DNS에게 해당하는 해당 IP를 가져 옴. 즉 조금의 부하가 있을 수 있음).
socket초보 wrote:
> 클라이언트는 제컴에서 만들고 서버는 리눅스로 하는데,
> 속켓으로 data를 보내려고 하는데 clientSocket컴퍼넌트만 사용하면 되나요?
> 그리고 address에 와 host의 차이점에 대해서 말씀좀 해주세요.
> 그리고 host에다 제가 알기론 서버 ip주소를 넣어야 되는걸로 알고 있는데
> 맞는건지도 알고 싶네요.
> 부탁합니다.
0
0
삭제
수정
댓글
socket초보
•
2001.12.14 02:43
이경문 wrote:
> 소켓관련 컴포넌트나 라이브러리는 많이 있는데, 처음 사용하신다면 ClientSocket을 쓰시는 게 무방합니다.
>
> 그리고 Host는 말 그대로 HostName을 적는 거구요, Address는 IP Address(dotted 4 format)을 적는 겁니다.
> HostName을 명시하였다면 내부적으로 Address로 변환해 줍니다(gethostbyname이라는 winsocket API를 호출하여서 DNS에게 해당하는 해당 IP를 가져 옴. 즉 조금의 부하가 있을 수 있음).
>
>
> socket초보 wrote:
> > 클라이언트는 제컴에서 만들고 서버는 리눅스로 하는데,
> > 속켓으로 data를 보내려고 하는데 clientSocket컴퍼넌트만 사용하면 되나요?
> > 그리고 address에 와 host의 차이점에 대해서 말씀좀 해주세요.
> > 그리고 host에다 제가 알기론 서버 ip주소를 넣어야 되는걸로 알고 있는데
> > 맞는건지도 알고 싶네요.
> > 부탁합니다.
0
0
삭제
수정
댓글
이경문
•
2001.12.14 02:51
10054 : 현재 연결은 원격 호스트에 의해 강제로 끊겼습니다.
연결이 되었는데 10054에러가 날 수도 있고
연결이 끊겨서 10054 에러가 날 수 있습니다.
해당 에러는 소스를 봐야 해결할 수 있을 것 같군요.
실제로 SendText나 SendBuf를 할 때 연결이 되어 있는지(ClientSocket1.Active)
확인해 보시기 바랍니다.
socket초보 wrote:
> 이경문 wrote:
> > 소켓관련 컴포넌트나 라이브러리는 많이 있는데, 처음 사용하신다면 ClientSocket을 쓰시는 게 무방합니다.
> >
> > 그리고 Host는 말 그대로 HostName을 적는 거구요, Address는 IP Address(dotted 4 format)을 적는 겁니다.
> > HostName을 명시하였다면 내부적으로 Address로 변환해 줍니다(gethostbyname이라는 winsocket API를 호출하여서 DNS에게 해당하는 해당 IP를 가져 옴. 즉 조금의 부하가 있을 수 있음).
> >
> >
> > socket초보 wrote:
> > > 클라이언트는 제컴에서 만들고 서버는 리눅스로 하는데,
> > > 속켓으로 data를 보내려고 하는데 clientSocket컴퍼넌트만 사용하면 되나요?
> > > 그리고 address에 와 host의 차이점에 대해서 말씀좀 해주세요.
> > > 그리고 host에다 제가 알기론 서버 ip주소를 넣어야 되는걸로 알고 있는데
> > > 맞는건지도 알고 싶네요.
> > > 부탁합니다.
0
0
삭제
수정
댓글
socket초보
•
2001.12.14 03:22
님아 소스는 아래와 같아요 이상이 어딘지 모르겠어요.
unit socket;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ScktComp, StdCtrls, ComCtrls;
type
TRtuCmdMsg = record
opcode : array[1..4] of Char;
rtype : array[0..1] of Char;
cmd : array[0..3] of Char;
rtuid : array[0..31] of Char;
ip : array[0..15] of Char;
size : Integer;
data : array[0..256] of Char;
end;//Send Message
TRtuCmdRtn = record
opcode : array[0..3] of Char;
rtype : array[0..1] of Char;
cmd : array[0..3] of Char;
rtuid : array[0..31] of Char;
ip : array[0..15] of Char;
size : Integer;
data : array[0..32] of Char;
end;//Recive Message
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
ed_ip: TEdit;
ed_Cmd: TEdit;
CB_Op: TComboBox;
CB_Command: TComboBox;
CB_Type: TComboBox;
ED_RtuId: TEdit;
TabSheet2: TTabSheet;
GroupBox1: TGroupBox;
memSend: TMemo;
GroupBox2: TGroupBox;
memRecv: TMemo;
ClientSocket1: TClientSocket;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure CB_OpKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CB_CommandKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Write(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure CB_OpChange(Sender: TObject);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
RtuCmdMsg : TRtuCmdMsg;
RtuCmdRtn : TRtuCmdRtn;
implementation
{$R *.DFM}
procedure TForm1.FormShow(Sender: TObject);
begin
ED_Cmd.SetFocus;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientSocket1.Close;
Action := CaFree;
end;
procedure TForm1.CB_OpKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
SelectNext(Sender as TWinControl, True, True);
end;
procedure TForm1.CB_CommandKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
if ClientSocket1.Active = False then begin
ClientSocket1.Host := '187.1.10.23';
ClientSocket1.Port := 9041;
ClientSocket1.Active := TRUE;
end else
if ClientSocket1.Active = TRUE then begin
ClientSocket1.Active := False;
end;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
var
llength : Integer;
begin
ZeroMemory(@RtuCmdMsg, SizeOf(RtuCmdMsg));
with RtuCmdMsg do
begin
StrPCopy(@opcode[1], Trim(Ed_Cmd.text));
StrPCopy(rtype,CB_Type.text);
StrPCopy(cmd, CB_Op.Text);
StrPCopy(rtuid, ED_RtuId.text);
StrPCopy(ip, ed_ip.Text);
size := Length(CB_Command.Text);
StrPCopy(data, CB_Command.Text);
end;
With RtuCmdMsg do begin
llength := length(opcode);
ShowMessage('opcode='+ opcode +'='+ IntToStr(llength));
llength := length(rtype);
ShowMessage('type='+ rtype +'='+ IntToStr(llength));
llength := length(cmd);
ShowMessage('Cmd='+ cmd +'='+ IntToStr(llength));
llength := length(rtuid);
ShowMessage('Rtuid=' + rtuid +'='+ IntToStr(llength));
llength := length(ip);
ShowMessage('ip='+ ip +'='+ IntToStr(llength));
ShowMessage('size='+ IntToStr(size));
ShowMessage('data='+ data);
end;
ClientSocket1.Socket.SendBuf(RtuCmdMsg, SizeOf(RtuCmdMsg));
end;
procedure TForm1.ClientSocket1Write(Sender: TObject;
Socket: TCustomWinSocket);
begin
memSend.Lines.Add('opcode = '+StrPas(@RtuCmdMsg.opcode[1]));
memSend.Lines.Add('rtype = '+StrPas(RtuCmdMsg.rtype));
memSend.Lines.Add('cmd = '+StrPas(RtuCmdMsg.cmd));
memSend.Lines.Add('rtuid = '+StrPas(RtuCmdMsg.rtuid));
memSend.Lines.Add('ip = '+StrPas(RtuCmdMsg.ip));
memSend.Lines.Add('size = '+IntToStr(RtuCmdMsg.size));
memSend.Lines.Add('data = '+StrPas(RtuCmdMsg.data));
memSend.Lines.Add('************************************************');
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
ZeroMemory(@RtuCmdRtn, SizeOf(RtuCmdRtn));
ClientSocket1.Socket.ReceiveBuf(RtuCmdRtn, SizeOf(RtuCmdRtn));
memRecv.Lines.Add('opcode = '+StrPas(RtuCmdRtn.opcode));
memRecv.Lines.Add('rtype = '+StrPas(RtuCmdRtn.rtype));
memRecv.Lines.Add('cmd = '+StrPas(RtuCmdRtn.cmd));
memRecv.Lines.Add('rtuid = '+StrPas(RtuCmdRtn.rtuid));
memRecv.Lines.Add('ip = '+StrPas(RtuCmdRtn.ip));
memRecv.Lines.Add('size = '+IntToStr(RtuCmdRtn.size));
memRecv.Lines.Add('data = '+StrPas(RtuCmdRtn.data));
memRecv.Lines.Add('************************************************');
ClientSocket1.Active := False;
CB_OP.SetFocus;
end;
procedure TForm1.CB_OpChange(Sender: TObject);
begin
CB_Command.ItemIndex := CB_Op.ItemIndex;
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ShowMessage('에러가 났군요' + IntToStr(ErrorCode));
ErrorCode := 0;
Socket.Close;
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
훈
•
2001.12.14 01:29
3
COMMENTS
/
0
LIKES
Runtime에 생성된 오브젝트의 Name 속성은 어떻게 되는 거죠?
버섯
•
2001.12.14 02:02
훈 wrote: > 디자인 타임에 Object를 생성하면 , > Edit1, Edit2...이런 식으로 Name 속성이 설정됩니다....
훈
•
2001.12.15 02:28
버섯 wrote: > 훈 wrote: > > 디자인 타임에 Object를 생성하면 , > > Edit1, Edit2...이런 식으...
이경문
•
2001.12.14 01:57
예전에 저도 고민했던 것인데요... 디자인타임에 컴포넌트를 생성하면 T짜 빼고 + 를 붙이게 되지요. ...
홍길동
2001.12.14 01:24
0
COMMENTS
/
0
LIKES
어그래
bingyou
2001.12.14 01:17
0
COMMENTS
/
0
LIKES
226 Binary transfer complete ???
동동
2001.12.14 01:13
0
COMMENTS
/
0
LIKES
영문에러를 한글로 바꾸고 싶은데...
어린왕자A
2001.12.14 01:06
0
COMMENTS
/
0
LIKES
델파이5에서는 되는데 델파이6에서만 안되는거 같아요 (DB의 Datetime필드)
임준
•
2001.12.14 00:56
1
COMMENTS
/
0
LIKES
이 소스좀 보시고 잘못된 곳 좀 지적해 주세요...
이경문
•
2001.12.14 02:05
음.. WriteStream이라는 method가 내부적으로 잘라서 처리하는 지 모르겠군요. 일단 WriteStream에서 한꺼...
김정수
2001.12.14 00:52
0
COMMENTS
/
0
LIKES
2000에서 NMFTP 오류가 나는 듯...
quest
2001.12.14 00:49
0
COMMENTS
/
0
LIKES
마이크 볼륨 조절하는 방법
아가사
2001.12.14 00:43
0
COMMENTS
/
0
LIKES
리스트 뷰에 에디드박스나 체크박스 넣기
피라니
2001.12.14 00:39
0
COMMENTS
/
0
LIKES
PowerSocket이 Delphi6를 만나니
beaross
2001.12.14 00:23
0
COMMENTS
/
0
LIKES
Form을 Windows의 작업표시줄처럼 하려면.....
miso
•
2001.12.14 00:10
1
COMMENTS
/
0
LIKES
실행파일이 17mb인 프로그램 보셨습네까?
김하늘
•
2001.12.14 19:36
dpr에 uses밑에 걸어서 사용할경우 프로그램의 크기는 커집니다(정적으로)... 보통 프로젝트 옵션에서 ...
공주대학교
2001.12.13 23:56
0
COMMENTS
/
0
LIKES
델파이5설치후
장민우
•
2001.12.13 23:28
2
COMMENTS
/
0
LIKES
각도 계산 부탁드리겠습니다.. ㅠ.ㅠ 머리아파 죽겠써요~
장민우
•
2001.12.14 04:42
장민우 wrote: > 일정면을 기준으로 해서 지정된 거리를 갖는 a1, a2, b1, b2 가 있습니다. > 직선 A 는 ...
어린왕자A
•
2001.12.14 01:09
장민우 wrote: > 일정면을 기준으로 해서 지정된 거리를 갖는 a1, a2, b1, b2 가 있습니다. > 직선 A 는 ...
socket초보
•
•
2001.12.13 23:21
4
COMMENTS
/
1
LIKES
socket처음입니다.도와주세요
클라이언트는 제컴에서 만들고 서버는 리눅스로 하는데, 속켓으로 data를 보내려고 하는데 clientSocket컴퍼넌트만 사용하면 되나요? 그리고 address에 와 host의 차이점에 대해서 말씀좀 해주세요. 그리고 host에다 제가 알기론 서버 ip...
이경문
•
2001.12.14 01:47
소켓관련 컴포넌트나 라이브러리는 많이 있는데, 처음 사용하신다면 ClientSocket을 쓰시는 게 무방합니다....
socket초보
•
2001.12.14 02:43
이경문 wrote: > 소켓관련 컴포넌트나 라이브러리는 많이 있는데, 처음 사용하신다면 ClientSocket을 쓰시...
이경문
•
2001.12.14 02:51
10054 : 현재 연결은 원격 호스트에 의해 강제로 끊겼습니다. 연결이 되었는데 10054에러가 날 수도 있...
socket초보
•
2001.12.14 03:22
님아 소스는 아래와 같아요 이상이 어딘지 모르겠어요. unit socket; interface uses Windows, M...
이지인
2001.12.13 22:47
0
COMMENTS
/
0
LIKES
다른 PC의 하드용량 체크!
동글이
•
2001.12.13 22:13
1
COMMENTS
/
0
LIKES
TWebBrowser 에서 링크클릭시 무조건 새창 띄우기.
innover
•
2001.12.20 00:02
OnBeforeNavigate2 에서 TargetFrameName을 _blank 로 설정하도록 해보세요. 물론 처음 페이지를 띄울때에...
훈
2001.12.13 21:52
0
COMMENTS
/
0
LIKES
트랜잭션에 관한문제입니다. 어플이 다운되었을때, 트랜잭션 해제는 어떻게하죠?
점시기
2001.12.13 21:32
0
COMMENTS
/
0
LIKES
bde에서는 되는데 Database Explorer에서는 오류가
폭폭
2001.12.13 21:04
0
COMMENTS
/
0
LIKES
Winzeos에서 파일저장에러
socket초보
2001/12/13 23:21
Views
391
Likes
1
Comments
4
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
그리고 Host는 말 그대로 HostName을 적는 거구요, Address는 IP Address(dotted 4 format)을 적는 겁니다.
HostName을 명시하였다면 내부적으로 Address로 변환해 줍니다(gethostbyname이라는 winsocket API를 호출하여서 DNS에게 해당하는 해당 IP를 가져 옴. 즉 조금의 부하가 있을 수 있음).
socket초보 wrote:
> 클라이언트는 제컴에서 만들고 서버는 리눅스로 하는데,
> 속켓으로 data를 보내려고 하는데 clientSocket컴퍼넌트만 사용하면 되나요?
> 그리고 address에 와 host의 차이점에 대해서 말씀좀 해주세요.
> 그리고 host에다 제가 알기론 서버 ip주소를 넣어야 되는걸로 알고 있는데
> 맞는건지도 알고 싶네요.
> 부탁합니다.