⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simpleclient.c

📁 一个LINUX下一个框架文件系统,运行编译环境:RED HAT LINUX7.3
💻 C
字号:
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
#include <fcntl.h>
#include <setjmp.h>
#include <netdb.h>
#include <sys/param.h>
#include <netinet/in.h>
#define SERVERPORT	6700
#define SNDBUFFERSIZE	100
#define RCVBUFFERSIZE	100

int sock;  
struct sockaddr_in sin;

void fatal( char * );
void server();

void *shutdown( int sig_nr )
{
  close( sock );
  exit(0);
  return(0);
}

void fatal( char *text )
{
  printf( "Error in %s\n", text );
  exit( 1 );
}

ssize_t readn(int fd, void * vptr, size_t n)
{
	ssize_t nleft;
	ssize_t nread;
	char * ptr;

	ptr 	= vptr;
	nleft 	= n;
	while(nleft > 0){
		if((nread = read(fd,ptr,nleft)) < 0){
			if(errno == EINTR)
				nread = 0;
			else
				return -1;
		}
		else
			if(nread == 0) break;
		nleft 	-= nread;
		ptr	+= nread;
	}
	return (n-nleft);
}

ssize_t writen(int fd, const void * vptr, size_t n)
{
	ssize_t nleft;
	ssize_t nwriten;
	const char * ptr;

	ptr 	= vptr;
	nleft	= n;
	while(nleft > 0){
		if( (nwriten = write(fd, ptr,nleft)) <= 0){
			if(errno == EINTR)
				nwriten = 0;
			else
				return -1;
		}
		nleft	-= nwriten;
		ptr	+= nwriten;
	}
	return n;
}
				
void server()
{
  int addrlen, length, counter;
  short optval;
  char  *buffer;
  
  signal(SIGTERM, (void *)shutdown);

  if( (sock = socket(AF_INET, SOCK_STREAM, 0)) == -1 )
	fatal( "Create Socket.\n" );

  sin.sin_family = AF_INET;
  sin.sin_port = htons( SERVERPORT );
  sin.sin_addr.s_addr =inet_addr("10.0.0.1");
  bzero( &( sin.sin_zero), 8 );

  if ( connect( sock, (struct sockaddr*)&sin, sizeof(sin) ) <0 ){
	  printf( "Connect to the other side error!\n" );
	  return;
  }

  buffer = (char*) malloc( SNDBUFFERSIZE );
  sprintf( buffer, "%s", "hello world" );

  if( writen( sock, buffer, SNDBUFFERSIZE) == -1 ){
	  printf( "Error during send!\n" );
  }

  free (buffer);
  close( sock );	//parent do not need this
}

main( void )
{
  server();
  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -