윈폼을 활용하여 버튼 클릭할때마다 데이터를 보낼려고 합니다.
아래와 같이 클라이언트 쪽 코드를 작성했는데 처음 한번은 데이터가 보내지는데 그다음 버튼을 클릭할때는 데이터가 전송이 안됩니다.
서버 쪽에서 데이터없다고 소켓을 닫지도 않습니다.
1. 클라이언트 코드 c#
void Onmode_Send()
{
var json = new JObject();
json.Add("MODE", "ON");
string json_text = json.ToString();
try
{
byte[] Buffer = Encoding.UTF8.GetBytes(json_text);
concheck_text.Text = json_text;
Client_Socket.Send(Buffer);
}
catch (Exception ex)
{
concheck_text.Text = "연결 끊김";
Connected = false;
Client_Socket.Close();
}
json.Remove("MODE");
}
void Offmode_Send()
{
var json = new JObject();
json.Add("MODE", "OFF");
string json_text = json.ToString();
try
{
byte[] Buffer = Encoding.UTF8.GetBytes(json_text);
concheck_text.Text = json_text;
Client_Socket.Send(Buffer);
}
catch (Exception ex)
{
concheck_text.Text = "연결 끊김";
Connected = false;
Client_Socket.Close();
}
json.Remove("MODE");
}
2. 서버 코드 파이썬
while True:
client_socket, client_addr = server_socket.accept() # 수신대기, 접속한 클라이언트 정보 (소켓, 주소) 반환
msg = client_socket.recv(SIZE) # 클라이언트가 보낸 메시지 반환
# 빈 문자열 수신시 중지 **********해당 부분에서 break 안걸림 *************
if not msg:
break
print("[{}] message : {}".format(client_addr,msg)) # 클라이언트가 보낸 메시지 출력
[최초 등록일: ]
[최종 수정일: 12/16/2021]