Forum Discussion
Altera_Forum
Honored Contributor
14 years agoEthernet transmission speed
My board:DE2-115 My sopc project:webserver(RGMII)(provided by Terasic) My nios project: simple socket server Now, I can send some words to my PC from my board by a debugging...
Altera_Forum
Honored Contributor
14 years agoYeah, as you mentioned, my socket is TCP.
Should I change it to UDP or can I do something to improve the existing situation by changing TCP Socket? ******************my code in NIOS II******************# 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"# define MAXDATASIZE 1450 void SSSSimpleSocketServerTask() { int fd_listen;// max_socket int fd_listen1; int long bytes_sent; int long bytes_recv; int nSendBufSize=SSS_TX_BUF_SIZE; struct sockaddr_in server_addr; struct sockaddr_in client_addr; fd_listen = socket(AF_INET, SOCK_STREAM, 0); setsockopt(fd_listen,SOL_SOCKET,SO_SNDBUF,(char * )&nSendBufSize,sizeof(int)); if (fd_listen< 0) { alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Socket creation failed"); } else { printf("Socket created"); } server_addr.sin_family = AF_INET; server_addr.sin_port = htons(SSS_PORT); server_addr.sin_addr.s_addr = INADDR_ANY; memset(&(server_addr.sin_zero), '\0', 8); if ((bind(fd_listen,(struct sockaddr *)&server_addr,sizeof(server_addr))) < 0) { alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Bind failed"); } else { printf("Bind is OK\n"); } if ((listen(fd_listen,5)) < 0) { alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Listen failed"); } else { printf("Listen is OK\n"); } int client_addrlen; client_addrlen=sizeof(client_addr); fd_listen1 = accept(fd_listen,(struct sockaddr *)&client_addr,&client_addrlen); while(1) { if(fd_listen1<0) { alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Accept creation failed"); } else { printf("accepted connection request\n"); } fd_listen = fd_listen1; break; } printf("Server: Sending some test data to client...\n"); char sendbuf[MAXDATASIZE] = "Bjtuxuxu Love FPGA!"; char recvbuf[200] = "Bjtu"; while(1) { bytes_sent = send(fd_listen,sendbuf,SSS_BUF_LEN,0); } if(bytes_sent<0) { alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Send failed"); } else { printf("SERVER : Send is OK \n"); printf("SERVER : Bytes sent:%ld.\n",bytes_sent); } bytes_recv = recv(fd_listen,recvbuf,200,0); if(bytes_recv<0) { alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Recv failed"); } else { printf("SERVER: recv() is OK.\n"); printf("SERVER: Received data is: \"%s\"\n", recvbuf); printf("SERVER: Bytes received: %ld.\n", bytes_recv); } return ; } ******************my code in NIOS II****************** Thanks for your reply.