Forum Discussion
Altera_Forum
Honored Contributor
13 years agoHere is my changed simple_socket_sever.c
# include <stdio.h>
# include <string.h>
# include <ctype.h>
# include "includes.h"
# include "simple_socket_server.h"
# include "alt_error_handler.h"
# include "ipport.h"
# include "tcpport.h"
void sss_reset_connection(SSSConn* conn)
{
memset(conn, 0, sizeof(SSSConn));
conn->fd = -1;
conn->state = READY;
conn->rx_wr_pos = conn->rx_buffer;
conn->rx_rd_pos = conn->rx_buffer;
return;
}
void sss_handle_accept(int listen_socket, SSSConn* conn)
{
int socket, len;
struct sockaddr_in incoming_addr;
alt_u8 sendBuf;
alt_u8 *send_ptr = sendBuf;
len = sizeof(incoming_addr);
if ((conn)->fd == -1)
{
if((socket=accept(listen_socket,(struct sockaddr*)&incoming_addr,&len))<0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,
" accept failed");
}
else
{
(conn)->fd = socket;
//sss_send_menu(conn);
send_ptr += sprintf(send_ptr,"Connected OK!\n\r");
send_ptr += sprintf(send_ptr,inet_ntoa(incoming_addr.sin_addr));
send_ptr += sprintf(send_ptr,"\n\r");
send(conn->fd, sendBuf, send_ptr-sendBuf, 0);
printf(" accepted connection request from %s\n",
inet_ntoa(incoming_addr.sin_addr));
}
}
else
{
printf(" rejected connection request from %s\n",
inet_ntoa(incoming_addr.sin_addr));
}
return;
}
void sss_handle_receive(SSSConn* conn)
{
char Buf;
memset(Buf,0,10);
//OSTimeDlyHMSM(0,0,1,0);
recv(conn->fd,Buf,2,0);
printf("%s\nrecieved OK!\n\n",Buf);
//OSTimeDlyHMSM(0,0,1,0);
send(conn->fd,"2",2,0);
printf("2 sent OK!\n\n");
return;
}
void SSSSimpleSocketServerTask()
{
int fd_listen, max_socket;
struct sockaddr_in addr;
static SSSConn conn;
fd_set readfds;
if ((fd_listen = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE," Socket creation failed");
}
addr.sin_family = AF_INET;
addr.sin_port = htons(SSS_PORT); //SSS_PORT=30 (simple_socket_server.h)
addr.sin_addr.s_addr = INADDR_ANY;
if ((bind(fd_listen,(struct sockaddr *)&addr,sizeof(addr))) < 0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE," Bind failed");
}
if ((listen(fd_listen,1)) < 0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE," Listen failed");
}
sss_reset_connection(&conn);
printf(" Simple Socket Server listening on port %d\n", SSS_PORT);
int cnt=0;
sss_handle_accept(fd_listen, &conn);
while(1)
{
sss_handle_receive(&conn);
printf("cnt=%d\n\n",++cnt);
} /* while(1) */
}