이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
tcpserver
설명
tcpserver 객체는 지정된 IP 주소와 포트 번호에서 TCP/IP 클라이언트 연결 요청을 받고 요청을 수락하는 TCP/IP 서버를 나타냅니다. 서버가 연결을 설정하면 읽기 및 쓰기 함수를 사용하여 클라이언트로부터 데이터를 수신하고 클라이언트에 데이터를 보낼 수 있습니다. 각 tcpserver 객체는 한 번에 하나의 클라이언트 연결만 지원합니다.
생성
설명
는 t = tcpserver(address,port)address로 지정된 IP 주소와 port로 지정된 포트 번호에서 TCP/IP 클라이언트 연결 요청을 수신 대기하는 TCP/IP 서버를 생성합니다.
입력 인수 address는 ServerAddress 속성을 설정하고 입력 인수 port는 ServerPort 속성을 설정합니다.
는 포트 번호 t = tcpserver(port)port와 IP 주소 "::"에서 클라이언트 연결 요청을 수신 대기하는 TCP/IP 서버를 생성합니다. 이 IP 주소는 서버가 컴퓨터의 모든 유효한 IP 주소에서 클라이언트 연결을 허용한다는 것을 나타냅니다.
는 TCP/IP 서버를 생성하고 하나 이상의 이름-값 쌍 인수를 사용하여 추가 속성를 설정합니다. 이름-값 쌍 인수를 사용하여 t = tcpserver(___,Name,Value)Timeout, ByteOrder 및 ConnectionChangedFcn 속성을 설정합니다. 이전 구문의 모든 입력 인수 조합 뒤에는 각 속성 이름을 따옴표로 묶고 그 뒤에 속성 값을 입력합니다.
예를 들어, t = tcpserver(4000,"Timeout",20,"ByteOrder","big-endian")는 IP 주소 "::"의 포트 4000에서 연결을 수신 대기하는 TCP/IP 서버를 생성합니다. 시간 초과 기간을 20초로 설정하고 바이트 순서를 빅 엔디언으로 설정합니다.
속성
객체 생성 속성
서버가 TCP/IP 클라이언트 연결을 수신 대기하는 IP 주소로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 이 속성을 유효한 IPV4 주소, IPV6 주소 또는 컴퓨터의 호스트 이름으로 설정할 수 있습니다. 이 속성은 객체 생성 시에만 설정할 수 있습니다.
예: t = tcpserver("144.212.100.10",4000)는 포트 4000과 IP 주소 144.212.100.10에서 연결을 수신 대기합니다.
참고
객체 생성 시 호스트 이름을 지정하면 tcpserver는 이를 IPV4 또는 IPV6 주소로 확인하고 ServerAddress를 확인된 IP 주소로 설정합니다.
데이터형: char | string
서버가 TCP/IP 클라이언트 연결을 수신 대기하는 포트 번호입니다. 1~65535 사이의 숫자로 지정됩니다. 이 속성은 객체 생성 시에만 설정할 수 있습니다.
예: t = tcpserver("144.212.100.10",4000)는 포트 4000과 IP 주소 144.212.100.10에서 연결을 수신 대기합니다.
데이터형: double
읽기 및 쓰기 작업을 완료하는 데 허용되는 시간(초)이며 숫자 값으로 지정됩니다. 이름-값 쌍 인수를 사용하여 객체 생성 시 이 속성을 설정합니다. 객체를 생성한 후에도 점 표기법을 사용하여 변경할 수 있습니다.
예: t = tcpserver("144.212.100.10",4000,"Timeout",20)는 읽기/쓰기 시간 초과 기간을 20초로 설정합니다.
데이터형: double
바이트가 더 큰 숫자 값으로 배열되는 순차적 순서로, "little-endian" 또는 "big-endian"으로 지정됩니다. 이것은 다음 숫자 데이터형에만 적용됩니다: uint16, int16, uint32, int32, uint64, int64, single, 및 double. 이름-값 쌍 인수를 사용하여 객체 생성 시 이 속성을 설정합니다. 객체를 생성한 후에도 점 표기법을 사용하여 변경할 수 있습니다.
예: t = tcpserver("144.212.100.10",4000,"ByteOrder","big-endian")는 바이트 순서를 빅 엔디언으로 설정합니다.
데이터형: char | string
연결 또는 연결 해제 이벤트에 의해 트리거되는 콜백 함수로, 함수 핸들로 지정됩니다. 연결 또는 연결 해제 이벤트는 TCP/IP 클라이언트가 서버에 연결하거나 연결을 해제할 때 발생합니다. 이름-값 쌍 인수를 사용하여 객체 생성 시 이 속성을 설정합니다. 객체를 생성한 후에도 점 표기법을 사용하여 변경할 수 있습니다. 함수 핸들을 할당할 때까지 이 속성은 비어 있습니다.
예: t = tcpserver("144.212.100.10",4000,"ConnectionChangedFcn",@myConnectionFcn)는 연결 콜백 함수를 myConnectionFcn로 설정합니다. 클라이언트가 연결되거나 연결 해제되면 myConnectionFcn가 트리거됩니다.
데이터형: function_handle
연결 속성
읽기 전용 속성입니다.
서버 연결 상태는 숫자 또는 논리 1 (true) 또는 0 (false)로 반환됩니다. 이 속성의 값이 true이면 TCP/IP 클라이언트가 서버에 연결됩니다.
한 번에 한 클라이언트에만 연결할 수 있습니다. 클라이언트가 서버와의 연결을 끊으면 다른 클라이언트에 즉시 연결할 수 있습니다.
데이터형: logical
읽기 전용 속성입니다.
연결된 클라이언트의 IP 주소는 문자열로 반환됩니다. 이 속성의 값은 클라이언트의 IP 주소와 일치합니다. TCP/IP 클라이언트가 서버에 연결을 설정할 때까지 이 속성 값은 비어 있습니다. 클라이언트가 서버와의 연결을 끊으면 이 속성 값은 비어 있게 됩니다.
예: t.ClientAddress는 연결된 클라이언트의 IP 주소를 반환합니다.
데이터형: string
읽기 전용 속성입니다.
연결된 클라이언트의 포트 번호이며 double로 반환됩니다. TCP/IP 클라이언트가 서버에 연결을 설정할 때까지 이 속성 값은 비어 있습니다.
예: t.ClientPort는 연결된 클라이언트의 포트 번호를 반환합니다.
데이터형: double
R2024a 이후
서버를 식별하기 위한 레이블이며 문자열로 지정됩니다. Tag를 사용하면 서버에 레이블을 적용하고, 나중에 tcpserverfind를 사용하여 서버에 액세스할 때 사용할 수 있습니다. 이렇게 하면 한 함수에서 서버를 생성하고 그 서버에서 다른 함수를 사용하여 작업을 수행할 때 유용할 수 있습니다. 또한 앱 콜백에서 서버를 찾고 액세스하는 데에도 유용합니다.
예: t.Tag = "Sensor"는 레이블을 "Sensor"로 설정합니다.
데이터형: string
읽기 및 쓰기 속성
ASCII로 끝나는 데이터를 읽고 쓰기 위한 종결자 문자로, "LF", "CR", "CR/LF" 또는 0~255 사이의 숫자형 정수로 반환됩니다. 읽기 및 쓰기 종결자가 다르면 Terminator는 이러한 값의 1x2 셀 배열로 반환됩니다. configureTerminator 함수를 사용하여 이 속성을 설정합니다.
예: configureTerminator(t,"CR")는 읽기와 쓰기 종결자를 모두 "CR"로 설정합니다.
예: configureTerminator(t,"CR",10)는 읽기 종결자를 "CR"로 설정하고 쓰기 종결자를 10로 설정합니다.
데이터형: double | char | string
읽기 전용 속성입니다.
읽을 수 있는 바이트 수로, 숫자형 값으로 반환됩니다.
예: t.NumBytesAvailable는 읽을 수 있는 바이트 수를 반환합니다.
데이터형: double
읽기 전용 속성입니다.
쓰여진 총 바이트 수를 숫자 값으로 반환합니다. 클라이언트가 서버와의 연결을 끊거나 다시 연결해도 이 속성의 값은 0으로 재설정되지 않습니다.
예: t.NumBytesWritten는 쓰여진 바이트 수를 반환합니다.
데이터형: double
콜백 속성
Bytes available 콜백 트리거 모드는 "off", "byte" 또는 "terminator"로 반환됩니다. 이 설정은 콜백이 꺼져 있는지, BytesAvailableFcnCount로 지정한 바이트 수에 의해 트리거되는지, 아니면 Terminator로 지정한 종결자에 의해 트리거되는지를 결정합니다. configureCallback 함수를 사용하여 이 속성을 설정합니다.
예: configureCallback(t,"byte",50,@callbackFcn)는 50바이트의 새 데이터를 읽을 수 있을 때마다 callbackFcn 콜백을 트리거하도록 설정합니다.
예: configureCallback(t,"terminator",@callbackFcn)는 종결자를 읽을 수 있을 때 callbackFcn 콜백을 트리거하도록 설정합니다.
예: configureCallback(t,"off")는 콜백을 끕니다.
데이터형: char | string
BytesAvailableFcn로 지정된 콜백을 트리거하는 데이터 바이트 수이며, double로 반환됩니다. 이 값은 BytesAvailableFcnMode 속성이 "byte"인 경우에만 사용됩니다. 이러한 속성은 configureCallback 함수를 사용하여 설정합니다.
예: configureCallback(t,"byte",50,@callbackFcn)는 50바이트의 새 데이터를 읽을 수 있을 때마다 callbackFcn 콜백을 트리거하도록 설정합니다.
데이터형: double
bytes available 이벤트에 의해 트리거된 콜백 함수는 함수 핸들로 반환됩니다. bytes available 이벤트는 특정 수의 바이트 또는 종결자를 수신하면 생성됩니다. 함수 핸들을 할당할 때까지 이 속성은 비어 있습니다. configureCallback 함수를 사용하여 이 속성을 설정합니다.
예: configureCallback(t,"byte",50,@callbackFcn)는 50바이트의 새 데이터를 읽을 수 있을 때마다 callbackFcn 콜백을 트리거하도록 설정합니다.
데이터형: function_handle
오류 이벤트에 의해 트리거되고 함수 핸들로 반환되는 콜백 함수입니다. 서버의 네트워크 연결이 중단되거나 끊어지면 오류 이벤트가 생성됩니다. 함수 핸들을 할당할 때까지 이 속성은 비어 있습니다.
예: t.ErrorOccurredFcn = @myErrorFcn
데이터형: function_handle
사용자 데이터에 대한 일반 용도 속성으로, 모든 MATLAB® 데이터형으로 반환됩니다. 예를 들어, 이 속성을 사용하여 콜백 함수의 데이터를 저장할 수 있습니다.
예: t.UserData
객체 함수
read | Read data sent to TCP/IP server |
readline | Read line of ASCII string data sent to TCP/IP server |
readbinblock | Read one binblock of data sent to TCP/IP server |
write | Write data from TCP/IP server |
writeline | Write line of ASCII data from TCP/IP server |
writebinblock | Write one binblock of data from TCP/IP server |
configureTerminator | Set terminator for ASCII string communication |
configureCallback | Set callback function and trigger condition for communication |
flush | Clear buffers for communication using TCP/IP server |
예제
컴퓨터의 IP 주소와 포트 4000에서 연결을 수신 대기하는 t라는 TCP/IP 서버를 만듭니다. 사용자의 IP 주소는 이 예시의 IP 주소와 다릅니다. 이는 머신의 어댑터의 유효한 IPV4 주소, IPV6 주소 또는 호스트 이름이어야 합니다.
t = tcpserver("172.28.200.145",4000)t =
TCPServer with properties:
ServerAddress: "172.28.200.145"
ServerPort: 4000
Connected: 0
ClientAddress: ""
ClientPort: []
NumBytesAvailable: 0
Show all properties, functions
Connected, ClientAddress, 및 ClientPort 속성 값은 TCP/IP 클라이언트가 서버에 연결되지 않았음을 나타냅니다.
모든 IP 주소와 포트 4000에서 연결을 수신 대기하는 t라는 TCP/IP 서버를 만듭니다.
t = tcpserver(4000)
t =
TCPServer with properties:
ServerAddress: "::"
ServerPort: 4000
Connected: 0
ClientAddress: ""
ClientPort: []
NumBytesAvailable: 0
Show all properties, functions
Connected, ClientAddress, 및 ClientPort 속성 값은 TCP/IP 클라이언트가 서버에 연결되지 않았음을 나타냅니다.
t라는 TCP/IP 서버를 만들고 읽기 및 쓰기 시간 초과 기간을 20초로 설정합니다.
t = tcpserver(4000,"Timeout",20)t =
TCPServer with properties:
ServerAddress: "::"
ServerPort: 4000
Connected: 0
ClientAddress: ""
ClientPort: []
NumBytesAvailable: 0
Show all properties, functions
Timeout의 값을 표시합니다.
t.Timeout
ans = 20
출력에는 지정된 시간 초과 값이 표시되며, 이는 t가 읽기 또는 쓰기 작업을 완료하기 위해 최대 20초 동안 대기한다는 것을 나타냅니다.
connectionFcn라는 콜백 함수를 만들고 현재 작업 디렉터리에 .m 파일로 저장합니다. 이 콜백 함수가 호출되면 MATLAB 명령 창에 연결 또는 연결 해제를 나타내는 메시지가 표시됩니다. 이 코드를 수정하면 메시지를 표시하는 대신 TCP/IP 서버에서 읽기 또는 쓰기 작업을 수행할 수 있습니다.
function connectionFcn(src,~) if src.Connected disp("This message is sent by the server after accepting the client connection request.") else disp("Client has disconnected.") end end
server라는 TCP/IP 서버를 만들고 ConnectionChangedFcn 속성을 connectionFcn 콜백 함수에 대한 핸들로 설정합니다.
server = tcpserver("localhost",4000,"ConnectionChangedFcn",@connectionFcn)
server =
TCPServer with properties:
ServerAddress: "127.0.0.1"
ServerPort: 4000
Connected: 0
ClientAddress: ""
ClientPort: []
NumBytesAvailable: 0
Show all properties, functions
서버와 동일한 IP 주소와 포트 번호를 사용하여 client라는 TCP/IP 클라이언트를 만듭니다.
client = tcpclient("localhost",4000)client =
tcpclient with properties:
Address: 'localhost'
Port: 4000
NumBytesAvailable: 0
Show all properties, functions
This message is sent by the server after accepting the client connection request.
클라이언트를 만든 후에는 서버에 연결됩니다. 이는 서버에 대한 연결 이벤트를 트리거하고, 이를 통해 connectionFcn 콜백 함수가 호출됩니다. 콜백 함수는 명령 창에 표시되는 메시지를 반환합니다.
클라이언트와 서버의 연결을 해제하려면 해당 항목을 지웁니다.
clear clientClient has disconnected.
클라이언트를 지우면 서버에서 연결 해제 이벤트가 발생하고 connectionFcn 콜백 함수에서 메시지가 반환됩니다.
지정된 포트와 IP 주소에서 클라이언트 연결 요청을 수신 대기하는 TCP/IP 서버를 만듭니다. 그런 다음 서버에서 연결된 클라이언트로 데이터를 씁니다.
localhost 및 포트 4000에서 연결을 수신 대기하는 TCP/IP 서버를 만듭니다.
server = tcpserver("localhost",4000)server =
TCPServer with properties:
ServerAddress: "127.0.0.1"
ServerPort: 4000
Connected: 0
ClientAddress: ""
ClientPort: []
NumBytesAvailable: 0
Show all properties, functions
tcpclient를 사용하여 서버 객체에 연결하는 TCP/IP 클라이언트를 만듭니다. server를 만드는 데 사용한 것과 동일한 IP 주소와 포트 번호를 지정해야 합니다.
client = tcpclient("localhost",4000)client =
tcpclient with properties:
Address: 'localhost'
Port: 4000
NumBytesAvailable: 0
Show all properties, functions
server의 Connected, ClientAddress, 및 ClientPort 속성 값을 확인하십시오.
server
server =
TCPServer with properties:
ServerAddress: "127.0.0.1"
ServerPort: 4000
Connected: 1
ClientAddress: "127.0.0.1"
ClientPort: 65136
NumBytesAvailable: 0
Show all properties, functions
출력은 server가 client의 요청을 성공적으로 수락하고 client가 server에 연결을 설정했음을 보여줍니다.
server 객체를 사용해 클라이언트에 데이터를 씁니다. 클라이언트가 서버에 연결되어 있으므로 이 데이터는 클라이언트에서 사용할 수 있습니다. client 객체에서 이 데이터를 읽습니다.
write(server,"hello world","string") read(client,11,"string")
ans = "hello world"
지정된 포트와 IP 주소에서 클라이언트 연결 요청을 수신 대기하는 TCP/IP 서버를 만듭니다. 그런 다음 연결된 클라이언트에서 서버로 전송된 데이터를 읽습니다.
localhost 및 포트 4000에서 연결을 수신 대기하는 TCP/IP 서버를 만듭니다.
server = tcpserver("localhost",4000)server =
TCPServer with properties:
ServerAddress: "127.0.0.1"
ServerPort: 4000
Connected: 0
ClientAddress: ""
ClientPort: []
NumBytesAvailable: 0
Show all properties, functions
tcpclient를 사용하여 서버 객체에 연결하는 TCP/IP 클라이언트를 만듭니다. server를 만드는 데 사용한 것과 동일한 IP 주소와 포트 번호를 지정해야 합니다.
client = tcpclient("localhost",4000)client =
tcpclient with properties:
Address: 'localhost'
Port: 4000
NumBytesAvailable: 0
Show all properties, functions
server의 Connected, ClientAddress, 및 ClientPort 속성 값을 표시합니다.
server
server =
TCPServer with properties:
ServerAddress: "127.0.0.1"
ServerPort: 4000
Connected: 1
ClientAddress: "127.0.0.1"
ClientPort: 65440
NumBytesAvailable: 0
Show all properties, functions
출력은 server가 client의 요청을 성공적으로 수락하고 client가 server에 연결을 설정했음을 보여줍니다.
TCP/IP 클라이언트에 데이터를 씁니다. 클라이언트가 서버에 연결되어 있으므로 이 데이터는 서버에서 사용할 수 있습니다. server 객체를 사용하여 문자열 데이터의 처음 5개 값을 읽습니다.
write(client,"helloworld","string") read(server,5,"string")
ans = "hello"
5개의 값을 더 읽으면 나머지 문자열 데이터를 받게 됩니다.
read(server,5,"string")ans = "world"
스크립트 또는 MATLAB 명령줄에서 tcpclient를 사용하면 MATLAB 작업 공간에서 객체로 표현된 연결이 결과로 반환됩니다.
t = tcpserver("localhost",6000,Tag="Analyzer");
t =
TCPServer with properties:
ServerAddress: "127.0.0.1"
ServerPort: 6000
Connected: 0
ClientAddress: ""
ClientPort: []
Tag: "Analyzer"
NumBytesAvailable: 0
다른 변수에 동일한 연결에 대한 참조가 없는 경우 작업 공간 변수를 지워서 서버 연결을 끊을 수 있습니다.
clear(t)
tcpserverfind를 사용하여 연결이 닫혔는지 확인합니다.
tcpserverfind
ans =
[]MATLAB 작업 공간에 존재하거나 클래스 속성 또는 앱 속성으로 저장된 tcpserver 연결이 있는 경우 다른 함수 또는 앱 콜백에서 tcpserver 객체에 액세스하지 못할 수 있습니다. 이 경우 tcpserverfind를 사용하여 연결을 찾아 삭제할 수 있습니다.
T = tcpserverfind
T =
TCPServer with properties:
ServerAddress: "127.0.0.1"
ServerPort: 6000
Connected: 0
ClientAddress: ""
ClientPort: []
Tag: "Analyzer"
NumBytesAvailable: 0
이 연결을 닫으려면 T를 삭제합니다.
delete(T)
이 명령은 tcpserver 객체를 삭제하고 서버와의 연결을 끊습니다. 서버에 다시 연결하려면 tcpserver로 새로운 서버 인터페이스를 만들어야 합니다.
삭제 후 tcpserverfind를 호출하여 기존 연결이 없음을 확인합니다.
tcpserverfind
ans =
[]변수 T가 여전히 작업 공간에 존재하지만 이제는 유효하지 않은 핸들입니다.
T
T = handle to deleted tcpserver
tcpserver는 핸들 객체이므로 인터페이스를 삭제한 후에도 변수가 유지됩니다. (이 유형의 객체에 대한 자세한 내용은 핸들 객체 동작 항목을 참조하십시오.) clear를 사용하여 작업 공간에서 유효하지 않은 핸들을 제거할 수 있습니다.
clear T버전 내역
R2021a에 개발됨새로운 Tag 속성을 사용하면 나중에 tcpserverfind를 사용하여 서버에 액세스할 때 사용할 수 있는 레이블을 서버에 적용할 수 있습니다.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)