- 论坛徽章:
- 0
|
代码如下:
server.c
- #include <stdio.h>
- #include <strings.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #define PORT 1234
- #define BACKLOG 1
- int main(void)
- {
- int listenfd,new_fd;
- struct sockaddr_in server;
- struct sockaddr_in client;
- int sin_size;
- fd_set fdset;
- char hello[1024*5];
- if( -1 == ( listenfd = socket( AF_INET, SOCK_STREAM, 0)))
- {
- printf("Creating socket failed.\n");
- exit(1);
- }
-
- bzero( &server,sizeof(server));
- server.sin_family = AF_INET;
- server.sin_port = htons(PORT);
- server.sin_addr.s_addr = htonl( INADDR_ANY);
-
- if( -1 == bind( listenfd, ( struct sockaddr *)&server, sizeof( struct sockaddr)))
- {
- printf("Bind error.\n");
- exit(1);
- }
-
- if( -1 == listen( listenfd, BACKLOG))
- {
- printf("listen() error.\n");
- exit(1);
- }
-
- sin_size = sizeof( struct sockaddr_in);
- while(1)
- {
-
-
- if(-1 == ( new_fd = accept( listenfd, ( struct sockaddr *)&client, &sin_size)))
- {
- printf(" accept() error.\n");
- exit(1);
- }
- memset(hello ,0,sizeof(hello));
- // 阻塞读
- if(read(new_fd,hello,1024*5)<0){
- close(new_fd);
- continue;
- }
- printf("len=%d,Recv=%s\n",strlen(hello),hello);
- }
- close( new_fd);
- close( listenfd);
- }
复制代码
client.c
- #include <stdio.h>
- #include <unistd.h>
- #include <strings.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #define PORT 1234
- #define MAXDATASIZE 100
- int main( int argc, char* argv[])
- {
- int iSocket, numbytes;
- char buf[MAXDATASIZE];
- struct hostent *he;
- int nWrite;
- struct sockaddr_in server;
- char bdf[1024*5];
- int i,j;
- while(1)
- {
- i=0;
-
- memset(bdf,0x00,sizeof(bdf));
- /* 启动一个tcp连接 */
- if( -1 == (iSocket = socket( AF_INET, SOCK_STREAM, 0)))
- {
- printf(" socket() error.\n");
- exit(1);
- }
-
-
- bzero( &server,sizeof( server));
- server.sin_family = AF_INET;
- server.sin_port = htons(PORT);
- server.sin_addr.s_addr=inet_addr("192.168.8.106");
-
- if( -1 == connect( iSocket,( struct sockaddr*)&server,sizeof( struct sockaddr)))
- {
- printf("connect() error.\n");
- exit(1);
- }
- for(j=0;j<=3;j++)
- {
-
- memset(bdf,0x00,sizeof(bdf));
- if(j==0)
- {
- strcpy(bdf,"200220010");
- nWrite=write(iSocket,bdf,strlen(bdf));
- }
- else if(j==1)
- {
- strcpy(bdf,"3333333333");
- nWrite=write(iSocket,bdf,strlen(bdf));
- }else if(j==2)
- {
- strcpy(bdf,"4444444444");
- nWrite=write(iSocket,bdf,strlen(bdf));
- }
- else if(j==3)
- {
- strcpy(bdf,"55");
- nWrite=write(iSocket,bdf,strlen(bdf));
- }
-
- }
- sleep(1);
- }
- close( iSocket);
- }
复制代码
各位看看吧??? |
|