(연관된 글이 1개 있습니다.)
c# tcp/ip 통신 코드 짜다가 에러가 발생하여 질문드립니다.
1. 서버와 연결확인이 되었고 메시지 전송까지 하였습니다. 그런데 메시지를 한번더 보낼려고 할때 클라이언트 코드에서 에러가 발생하며, 계속 연결이 끊겨 버립니다. 소스코드는 아래와 같습니다.
1-1 클라이언트 소스코드 (c#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 서버 연결 확인
bool Connected = false;
Socket Client_Socket;
string Cmd = string.Empty;
private void conbox_Click(object sender, EventArgs e)
{
if (Connected == true) return;
// 서버 ip 및 포트 번호
string SIP = Server_ip.Text;
int SPort = int.Parse(Server_port.Text);
// TCP통신, 서버 연결 성공하면 connected -> true로 변환
Client_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 서버 연결
try
{
Client_Socket.Connect(new IPEndPoint(IPAddress.Parse(SIP), SPort));
Connected = true;
}
catch
{
Connected = false;
Client_Socket.Close();
}
if (Connected == true) concheck_text.Text = "연결 성공";
else concheck_text.Text = "연결 실패";
}
private void send_button_Click(object sender, EventArgs e)
{
//try
//{
while (Connected)
{
//while (true)
//{
byte[] Buffer = Encoding.UTF8.GetBytes(send_textBox.Text);
Client_Socket.Send(Buffer); //******* 해당 부분에서 에러 발생 (System.Net.Sockets.SocketException: '현재 연결은 원격 호스트에 의해 강제로 끊겼습니다') ******
//}
}
//}
//catch (Exception ex)
//{
// //concheck_text.Text = "연결 끊김";
// //Connected = false;
// //Client_Socket.Close();
//}
}
1-2 서버 소스 코드 (파이썬)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
server_socket.bind(ADDR)
server_socket.listen()
# 무한루프 진입
while True:
client_socket, client_addr = server_socket.accept()
msg = client_socket.recv(SIZE)
print("[{}] message : {}".format(client_addr,msg))
#client_socket.sendall("welcome!".encode())
client_socket.close()
[연관 글]
[최초 등록일: ]
[최종 수정일: 12/10/2021]