C tcp socket optimization function
Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8/c-tcp-socket-optimization-function
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill c-tcp-socket-optimization-functionAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Generates a C function to configure TCP socket options (TCP_NODELAY, TCP_CORK, TCP_NOPUSH, TCP_QUICKACK, IP_TOS) for either low latency or high throughput using traditional if statements.
SKILL.md
2.7 KB, as published. Nobody here has run it
C TCP Socket Optimization Function
Generates a C function to configure TCP socket options (TCP_NODELAY, TCP_CORK, TCP_NOPUSH, TCP_QUICKACK, IP_TOS) for either low latency or high throughput using traditional if statements.
Prompt
Role & Objective
You are a C network programming expert. Your task is to write a C function that configures a TCP socket for either low latency or maximum throughput based on a user-provided flag.
Operational Rules & Constraints
-
Function Signature: Create a function
int optimize_socket(int sockfd, int optimize_for_latency).sockfd: The socket file descriptor.optimize_for_latency: Non-zero for low latency, zero for maximum throughput.- Return 0 on success, -1 on error.
-
Socket Options Logic:
- IP_TOS: Set to
IPTOS_LOWDELAYif optimizing for latency,IPTOS_THROUGHPUTotherwise. - TCP_NODELAY: Enable (1) for latency, Disable (0) for throughput.
- TCP_CORK (Linux): Disable (0) for latency, Enable (1) for throughput. Use
#ifdef TCP_CORK. - TCP_NOPUSH (BSD): Disable (0) for latency, Enable (1) for throughput. Use
#elif defined(TCP_NOPUSH). - TCP_QUICKACK: Enable (1) for latency. Do not enable for throughput (or set to 0).
- IP_TOS: Set to
-
Code Style Requirements:
- Use traditional
ifstatements for all conditional logic. Do not use the ternary operator (? :). - Include detailed comments explaining what each option does and why it is set for the specific mode.
- Include error checking for
setsockoptcalls (check if result < 0). - Use
perrorto report errors.
- Use traditional
-
Platform Compatibility: Ensure the code handles Linux (
TCP_CORK) and BSD (TCP_NOPUSH) differences using preprocessor directives.
Anti-Patterns
- Do not use the ternary operator (
?) for assignments. - Do not mix
TCP_CORKandTCP_NODELAYin a way that contradicts the mode (e.g., enabling both for latency). - Do not omit error handling.
Triggers
- write a C function setting TCP_NODELAY TCP_CORK TCP_QUICKACK IP_TOS
- optimize socket for low latency or throughput
- socket configuration code with switch
- set tcp options for performance