Q&A

  • 소켓에서 접속한 사람에게 모두 메세지 날리기
제가 지금 채팅 프로그램을 만들고 있는데요

참고로 서버를 만들고 client가 서버에 접속해서 채팅하는 식의 프로그램입니다.

서버의 속성 설정은

server type = stNonBlocking



크라이언트 속성 설정은

client type = ctNonBlocking



입니다.



접속한사람이 한사람이면

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;

Socket: TCustomWinSocket);

var

contents:String;

begin

contents:=Socket.ReceiveText;

Memo1.Lines.Add(contents);



ServerSocket1.Socket.Connections[0].SendText(contents);



end;

이런식으로 해서 되는데..

여러 면일때는

되질 안네요



제가 데이타 베이스 만하다 보니까.. 통신쪽이 약한데요..

이번에 통신 공부를 할려구 합니다. 고수님들의 지도 부탁드립니다.



1  COMMENTS
  • Profile
    유시니 1999.10.08 22:19
    이곤섭 wrote:

    > 제가 지금 채팅 프로그램을 만들고 있는데요

    > 참고로 서버를 만들고 client가 서버에 접속해서 채팅하는 식의 프로그램입니다.

    > 서버의 속성 설정은

    > server type = stNonBlocking

    >

    > 크라이언트 속성 설정은

    > client type = ctNonBlocking

    >

    > 입니다.

    >

    > 접속한사람이 한사람이면

    > procedure TForm1.ServerSocket1ClientRead(Sender: TObject;

    > Socket: TCustomWinSocket);

    > var

    > contents:String;

    > begin

    > contents:=Socket.ReceiveText;

    > Memo1.Lines.Add(contents);

    >

    > ServerSocket1.Socket.Connections[0].SendText(contents);

    >

    > end;

    > 이런식으로 해서 되는데..

    > 여러 면일때는

    > 되질 안네요

    >

    > 제가 데이타 베이스 만하다 보니까.. 통신쪽이 약한데요..

    > 이번에 통신 공부를 할려구 합니다. 고수님들의 지도 부탁드립니다.

    >



    위에있는 문장을 루프를 돌리면 어떨까 합니다.

    ServerSocket1.Socket.Connections[0].SendText(contents);

    대괄호 안의 숫자가 접속할때 마다 1씩 증가 하죠.

    만약 3번째 접속한 사람에게는

    ServerSocket1.Socket.Connections[2].SendText(contents);

    이렇게 보내면 되죠.

    그런데 접속한 사람이 얼마나 되는지는 나름대로 규약을 만들어야 될꺼같네요.

    서버쪽에서 변수를 하나 정의 하고 새로 접속될때마다 변수를 증가시키면

    접속한 컴퓨터의 수가 나오겠죠?

    그럼 좋은 결과 있길 바랄께요.







    • 김영대
      1999.10.07 01:47
      magiC wrote: > edit.text에 입력한 값으로 > 170개정도의 panel중에 특정 하나의 panel를 선택하고 그 ...
    • 박윤종
      1999.10.07 10:38
      김영대 wrote: > magiC wrote: > > edit.text에 입력한 값으로 > > 170개정도의 panel중에 특정 하나의...
    • 송종영
    • 1999.10.07 01:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박임성
      1999.10.09 14:36
      송종영 wrote: > > Delphi4.0에서 WebBrower(IE)를 등록하고, > Active X WebBrower(IE) 에서 문자열 ...
    • kcahn
    • 1999.10.07 01:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.10.07 01:34
      제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm)의 "공개 프로그램 소스" 에 보시면 "[공개...
    • 하인태
    • 1999.10.07 01:02
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 송인표
      1999.10.07 07:59
      거의 대부분의 CGI가 아파치에서 잘 돌아간다고 하는데 혹시 홈페이지 테스트를 화일열기로 하셔서 그런건...
    • 이정욱
      1999.10.07 04:35
      그냥 CGI로 하시면 됩니다. WinCGI도 되는것으로 알구 있구요. ISAPI는 당연 안됩니다. 잘 안된다면 뭔...
    • 김영진
    • 1999.10.07 00:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      1999.10.07 18:33
      김영진 wrote: > dbedit에 출력된 내용을 읽어오는 방법은 없습니까. > edit의 text 같은 속성이 없어서,...
    • 박윤종
      1999.10.07 10:49
      김영진 wrote: > dbedit에 출력된 내용을 읽어오는 방법은 없습니까. -- GetTextBuf 함수를 사용하세...
    • 김영대
      1999.10.07 01:44
      문보석 wrote: > 안녕하세요... 문보석입니다... > 어떤 프로그램에서 버튼을 눌렀을때 또는 생성자가 실...
    • 박지훈.임프
      1999.10.24 20:21
      김영대 wrote: > 문보석 wrote: > > 안녕하세요... 문보석입니다... > > 어떤 프로그램에서 버튼을 눌렀...
    • 고한석
    • 1999.10.07 00:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.10.07 01:50
      고한석 wrote: > 델파이로 델파이같은 프로그램을 만들려고 합니다. > 응용 program실행 중에 콤퍼넌트바...
    • 뻥쟁이
      1999.10.07 00:46
      디비초보 wrote: > 엉---- > MS-SQL SERVER를 서버측에는 당연이 설치를 해야겠죠... > 그럼 클라이언트...
    • 이재식
      1999.10.07 00:29
      김신영 wrote: > 자료의 구조는 단순합니다. > 1.제목(문자열) > 2.번호(문자열) > 3.메모 > > 특...
    • 구창민
      1999.10.06 20:14
      박종성 wrote: > 안녕하세요! 여러분 > > 델파이에서 함수로 지원하는 FileSize가 있지요. > > 그런...
    • David
    • 1999.10.06 19:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • jinifan
      1999.10.07 05:16
      엄청 간단 예제 임니당... by jinifan... unit GPanel; interface uses Windows, Messages,...
    • 몽중인
    • 1999.10.06 18:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.10.06 19:02
      http://www.iti.co.kr/forum/axfrm/midas.html
    • 구창민
      1999.10.06 19:45
      권태수 wrote: > 스플레쉬폼 -> 비밀번호확인 login폼 -> 메인폼-> 비밀번호변경폼 까지가능한 > > 예...
    • 김진철
    • 1999.10.06 20:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김대영
      1999.10.08 21:24
      김진철 wrote: > 안녕하세요. 델파이 초보입니다 > > - 테이블에서 특정 키값을 가진 레코드만 출력하...
    • 나그네
      1999.11.19 00:13
      > > - 테이블에서 특정 키값을 가진 레코드만 출력하려고 하는데 잘 안되서요. > > 값이 숫자인 경우에는 ...
    • 이곤섭
    • 1999.10.06 12:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유시니
      1999.10.08 22:19
      이곤섭 wrote: > 제가 지금 채팅 프로그램을 만들고 있는데요 > 참고로 서버를 만들고 client가 서버에 ...
    • rika
    • 1999.10.06 06:23
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김태균
      1999.10.06 18:31
      storedprocedure를 사용하면 아무 문제 없이 해결이 될 거 같네요.
    • rika
      1999.10.07 19:21
      김태균 wrote: > storedprocedure를 사용하면 아무 문제 없이 해결이 될 거 같네요. > 테이블 명이 하...
    • rika
      1999.10.07 19:20
      김태균 wrote: > storedprocedure를 사용하면 아무 문제 없이 해결이 될 거 같네요. > 테이블 명이 하...
    • 김태균
      1999.10.06 04:46
      다음과 같이 하면 됩니다. image1.Picture := nil; 간단하죠.....