<commit_before>/*************************************************************************
	> File Name: echoser_udp.c
	> Author: Simba
	> Mail: <EMAIL> 
	> Created Time: Sun 03 Mar 2013 06:13:55 PM CST
 ************************************************************************/

#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>

#define ERR_EXIT(m) \
        do \
        { \
                perror(m); \
                exit(EXIT_FAILURE); \
        } while(0)

void echo_cli(int sock)
{
	struct sockaddr_in servaddr;
        memset(&servaddr, 0, sizeof(servaddr));
        servaddr.sin_family = AF_INET;
        servaddr.sin_port = htons(5188);
        servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
	/* 并没有真正建立一个连接，即没有3次握手过程
	 * 只是维护了一种状态，绑定了远程地址，*/
	connect(sock, (struct sockaddr*)&servaddr, sizeof(servaddr));

	int ret;
	char sendbuf[1024] = {0};
	char recvbuf[1024] = {0};
	while (fgets(sendbuf, sizeof(sendbuf), stdin) != NULL)
	{	
		/* connect没有绑定客户端的端口，而sendto时会绑定，如果客户端有多个ip，调用这两个函数
		 * 的参数（远程地址）会决定从哪个ip出去  */
		/* sendto只是把Buf的数据拷贝到sock对应的缓冲区中，若服务器未开启，协议栈返回一个ICMP异步错误
		 * 如果前面调用了connect“建立”了一个连接，则recvfrom时能收到这个错误，否则收不到而一直阻塞*/
		/*sendto(sock, sendbuf, strlen(sendbuf), 0, (struct sockaddr*)&servaddr, sizeof(servaddr));*/
		/*sendto(sock, sendbuf, strlen(sendbuf), 0, NULL, 0);*/
		<commit_msg>Update echocli_udp.c<commit_after>/*************************************************************************
	> File Name: echoser_cli.c
	> Author: Simba
	> Mail: <EMAIL> 
	> Created Time: Sun 03 Mar 2013 06:13:55 PM CST
 ************************************************************************/

#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>

#define ERR_EXIT(m) \
        do \
        { \
                perror(m); \
                exit(EXIT_FAILURE); \
        } while(0)

void echo_cli(int sock)
{
	struct sockaddr_in servaddr;
        memset(&servaddr, 0, sizeof(servaddr));
        servaddr.sin_family = AF_INET;
        servaddr.sin_port = htons(5188);
        servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
	/* 并没有真正建立一个连接，即没有3次握手过程
	 * 只是维护了一种状态，绑定了远程地址，*/
	connect(sock, (struct sockaddr*)&servaddr, sizeof(servaddr));

	int ret;
	char sendbuf[1024] = {0};
	char recvbuf[1024] = {0};
	while (fgets(sendbuf, sizeof(sendbuf), stdin) != NULL)
	{	
	
	//	sleep(10);
		
{'fraction_non_alphanumeric': 0.25213013168086756, 'fraction_numerical': 0.029047250193648334, 'mean_word_length': 3.864406779661017, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 31, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '194479', 'n_tokens_mistral': 1124, 'n_tokens_neox': 1092, 'n_words': 169}